[PHP5] fonctionnement inattendu d'un tableau d'objet
Bon soir a tous,
J'ai un comportement inattendu que je ne comprend pas. voila mon code :
pour commencer j'ai une classe Test() :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
<?php
class Test{
private static $v;
public function __construct(){}
public function getV(){
return self::$v;
}
public function setV($value){
self::$v = $value;
}
}
?> |
et un code utilisant cette classe :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
<?PHP
include('test.php');
$table = array(1,2,3,4,5);
$otable = array();
foreach($table as $value){
$test = new Test();
$test->setV($value);
$otable[]=$test;
}
echo '- la longueur du tableau d objet est de : '.sizeof($otable);
foreach($otable as $obj){
echo '<br>'.$obj->getV();
}
?> |
l'exécution de ce code me donne :
Code:
1 2 3 4 5 6 7
|
- la longueur du tableau d objet est de : 5
5
5
5
5
5 |
alors que j'attendais qu'il m'affiche :
Code:
1 2 3 4 5 6 7
|
- la longueur du tableau d objet est de : 5
1
2
3
4
5 |
pour expliquer, le code qui utilise la classe doit instancier pour chaque valeur du tableau '$table' un objet de type 'Test' en introduisant la valeur encoure du tableau dans l'attribut '$v' de l'objet pour enfin enregistrer chaque instance crée dans le tableau d'objet '$otable'. de ce fait je doit a la fin de l'exécution avoir un tableau d'objet de type 'Test' et chaque objet renferme dans son attribut '$v' une valeur du tableau '$table'.
Mais ce que j'ai eu c'est un tableau d'objet de type 'TEST' renfermant chaqun la valeur '5' qui est la dernière valeur enregistrer dans le tableau '$table'.
bon voila j'ai essayer d'être aussi claire que je peut ;)
alors quelqu'un a une idée d'où provient l'erreur?
Merci et bon codage ;)