nemetos
Messages postés54Date d'inscriptionvendredi 10 septembre 2004StatutMembreDernière intervention15 octobre 2009
-
24 oct. 2007 à 23:31
nemetos
Messages postés54Date d'inscriptionvendredi 10 septembre 2004StatutMembreDernière intervention15 octobre 2009
-
25 oct. 2007 à 10:07
Bonjour,
je crée un objet. Après l'avoir initialiser, je veux le mettre dans un tableau.
Voici ma procédure :
$i=0;
$a = new objet1;
$b = Array(new objet1);
while (i<30)
{
$a->propriete1='tata';
$a->propriete2='toto';
$b[$i]=$a;
$i++;
}
Ceci marche en local avec easy php mais pas en ligne. Pour que ça marche en ligne je dois faire :
$b[$i]->propriete1= $a->propriete1;
$b[$i]->propriete2= $a->propriete2;
Existe t il un moyen de passer outre ceci car j'ai un objet qui possède plus de 20 propriétés et ça me gave de devoir faire comme ça ?
Merci.
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 25 oct. 2007 à 00:48
Petite explication au passage, en php5, les objets sont toujours donnés par référence.
Donc que tu modifies tes propriétés de ton objet $a dans la boucle, celles des $a que tu as stockés dans $b changent aussi, parce qu'il s'agit chaque fois de référence à ton $a. Tu n'as qu'un objet, en clair.
clone évite ceci.
Il y a d'autres moyens.