je suis confronté à un problème tordu.
J'ai fait une classe qui implémente arrayIterator, ce qui me permet de gérer des objets de la même façon que simpleXML par exemple, c'est à dire de faire des trucs de ce genre :
$config->site; // La propriété site est un objet. Pointe vers $config->site[0]
$config->site[0]; // Pointe correctement vers $config->site[0]
$config->site->host; // Pointe vers $config->site[0]->host;
$config->site[0]->host; // Point vers $config->site[0]->host
Là où ça se complique c'est que quand je construit cet arbre, je ne connais pas le nom des propriétés. Pour me balader dans l'arbre lors de sa construction, je suis donc obligé d'utiliser des propriétés dynamiques.Concrètement voilà le problème :
$config->site; // Pointe vers $config->site[0]
Donc si je remplace ça par une variable dynamique :
$dynavar = 'site';
$config->$dynavar; // Pointe toujours vers $config->site[0]
Seulement mon soucis c'est que je veux accéder à $config->site[1].Bien entendu quand j'essaie :
$dynavar = 'site';
$config->$dynavar[0]; // Pointe sur $config->s (première lettre de site)
// Ou bien
$dynavar = 'site';
$config->{$dynavar}[0]; // parse error
ça ne marche pas ...Je suis conscient que ce problème est assez tordu, mais auriez vous une idée / solution ?
PS : inutile de me proposer de faire
$dynavar = 'site';
$obj = $config->$dynavar;
$obj = $obj[1];
car lors de la seconde ligne $obj pointera déjà sur $obj[0]
en haut à gauche de ce sujet.