par
Hubert Roksor » 02 avr. 2007, 23:46
Attention, j'ai oublié de le préciser mais le nouvel objet ne partage rien avec l'ancien. Si tu avais changé des propriétés de la classe, tu dois appliquer les mêmes changement au nouvel objet. Sinon tu dois aussi pouvoir automatiser le processus, par exemple :
public function get()
{
switch ($this->type)
{
case 'chat':
case 'chien':
$obj = new $this->type;
break;
default:
die('...');
}
foreach (get_class_vars($this) as $k => $v)
{
$obj->$k = $v;
}
return $obj;
}
Attention aussi à ne pas créer de copie de l'objet au vol. Je ne me souviens plus exactement du fonctionnement de PHP 4, tu auras peut-être à assigner certains trucs par références (ou retourner l'objet par référence). À tester.
Edit: Whaaaa? j'aurais pû jurer que j'étais dans le forum PHP4... j'ai édité le code en conséquence
Attention, j'ai oublié de le préciser mais le nouvel objet ne partage rien avec l'ancien. Si tu avais changé des propriétés de la classe, tu dois appliquer les mêmes changement au nouvel objet. Sinon tu dois aussi pouvoir automatiser le processus, par exemple :
[php]public function get()
{
switch ($this->type)
{
case 'chat':
case 'chien':
$obj = new $this->type;
break;
default:
die('...');
}
foreach (get_class_vars($this) as $k => $v)
{
$obj->$k = $v;
}
return $obj;
}[/php]
Attention aussi à ne pas créer de copie de l'objet au vol. Je ne me souviens plus exactement du fonctionnement de PHP 4, tu auras peut-être à assigner certains trucs par références (ou retourner l'objet par référence). À tester.
Edit: Whaaaa? j'aurais pû jurer que j'étais dans le forum PHP4... j'ai édité le code en conséquence