Récupération des index de tableaux avec __get()

ViPHP
ViPHP | 928 Messages

03 mars 2008, 21:37

Bonsoir,
un petit problème que je n'arrive pas à résoudre, je souhaiterai reproduire ce comportement de SimpleXML :

Code : Tout sélectionner

$str = '<root> <test>lol</test> <test>coucou</test> </root>'; $xml = new SimpleXMLElement($str); echo $xml->test; // Affiche lol, équivaut à echo $xml->test[0]; echo $xml->test[1]; // Affiche coucou
Au niveau des affichages de $xml->test on voit que suivant si un indice est passé ou non il va aller piocher les bons indices dans son tableau.

Comment récupérer ces indices dans la méthode magique __get() ? Ou du moins comment reproduire ce comportement dans une classe ?

Merci :)

ViPHP
ViPHP | 5924 Messages

03 mars 2008, 22:36

Essaye ca (SPL) :
<?php

ini_set('display_errors', 1);

class test extends ArrayObject
{

	function __toString()
	{
		return isset($this[0]) ? (string) $this[0] : '';
	}

}

$test = new test();
$test[0] = 4;
$test[1] = 1;
$test[2] = 2;
$test[3] = 3;

echo $test[1];
echo $test;

?>

ViPHP
ViPHP | 928 Messages

03 mars 2008, 22:41

Effectivement ça à l'air de marcher,
merci pour l'aide :)

ViPHP
ViPHP | 5924 Messages

03 mars 2008, 22:44

De rien :)