Salut à tous
Je cherche le moyen d'accéder par le biais d'une méthode à un élément d'un Objet ArrayObject à 2 dimensions (par exemple).
A une dimension, pas de problème :
A 2 dimensions aussi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 $arrayObj = new ArrayObject(array('premier' => 'un')); echo $arrayObj['param']; // Ou echo $arrayObj->offsetGet('premier');
Mais par le biais d'une méthode, alors là ???
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 $arrayObj = new ArrayObject(array('premier' => array('un' => '1'))); $arrayObj['premier']['un'].'<br />'; // Ou echo $arrayObj->premier['un'].'<br />';
Quelque chose du genre :
Je pensais que faire quelque chose du genre pouvait se faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 class UneClasse { private $arrayObj; public function __construct() { $this->arrayObj = new ArrayObject(array('premier' => array('un' => '1'))); } public function getArrayObj($key) { return ??? } }
Mais ça marche pô
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 public function getArrayObj($key) { // ---> $key serait une chaine comme : premier['un'] return $this->arrayObj->{$key}; }
Puis passer une chaine en argument pour un clé à 2 dimension me semble pas très zen.
Parcourir (genre foreach) le tableau me parait ingérable (beaucoup trop hasardeux).
Sinon, j'ai pensé à mettre plusieurs paramètres à la méthode, genre getArrayObj($key, $key_dim2 = NULL, $key_dim3 = NULL, ...).
Ca pourrait ce faire, mais c'est pas très académique, non ?
Il y aurait peut être les fonctions func_num_args() et func_get_args, mais là je ne vois pas trop pour le moment.
Le dernier recourt serait de rendre $arrayObj publique et statique, mais ça m'embête un peu beaucoup.
S'il quelqu'un a une piste![]()
Partager