j'ai une chaîne de classes suivantes:Définition des attributs récursive
class A extends Model {
public $first;
public $b;
public function __construct() {
$this -> b = new B();
}
}
class B extends Model {
public $c;
public function __construct() {
$this -> c = new C();
}
}
class C extends Model {
public $foo;
}
Et je veux écrire une fonction qui définira une valeur d'attribut en fonction de certains paramètres, par exemple, si je l'appellerai sur l'objet A
et passer array('b_c_foo' => 'something')
à elle, je veux $a -> b -> c -> foo = 'something'
à définir.
Par exemple:
$a = new A();
$params = array(
'first' => 'first',
'b_c_foo' => 'something'
);
$a -> fillAttributes($params);
var_dump($a); // here A object should have first == 'fist', and b -> c -> foo == 'something'
J'ai écrit une telle fonction pour la seule classe A
, il est facile parce que je peux trouver les indices de tableau et le mettre à A
classe comme $this -> {$index} = $value;
, mais il est pas facile si le nombre d'appels est dynamique.
Comment est-ce que je pourrais faire ceci?