Création de tableau d'objets
Bonjour à tous,
J'ai une petite question concernant la création de tableau d'objets en PHP 5.3. J'ai le code suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
$foolist = array();
$myad = new StdClass();
$myad->data = 'foo';
$foolist[] = $myad;
var_dump($foolist);
$myad->data = 'foo2';
$foolist[] = $myad;
var_dump($foolist); |
En exécutant le code, je m'attends à ce que le deuxième var_dump me donne un tableau dont le premier objet contiendrait 'foo' et le deuxième 'foo2'. Or, voilà ce que m'affiche le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
array(1) {
[0]=>
object(stdClass)#1 (1) {
["data"]=>
string(3) "foo"
}
}
array(2) {
[0]=>
object(stdClass)#1 (1) {
["data"]=>
string(4) "foo2"
}
[1]=>
object(stdClass)#1 (1) {
["data"]=>
string(4) "foo2"
}
} |
D'après ce résultat, le tableau contient 2 fois le même objet. Je suis super étonné de ce résultat (à noter qu'en PHP 5.2, j'obtiens bien ce que je veux), il me semblait que l'opérateur [] assignait par copie et non par référence (ce qu'il semble faire dans le cas présent).
Est-ce que quelqu'un pourrait me dire si je m'y prends mal et pourquoi j'ai ce comportement ?
Merci de votre aide.