PHP modifier un objet itéré

Fermé
Tety - Modifié par Tety le 25/03/2011 à 16:27
 Tety - 1 avril 2011 à 15:40
Bonjour,

J'espère que quelqu'un pourra m'aider.
J'ai un objet dans lequel, j'ai d'autres objets et j'aimerais modifier la valeur d'un sous-objet. j'ai donc commencé par faire un double foreach sauf qu'on ne peut référencer un itérateur. Quelqu'un aurait-il une idée de comment faire? Merci

A voir également:

8 réponses

Aktayen Messages postés 189 Date d'inscription dimanche 31 mai 2009 Statut Membre Dernière intervention 17 décembre 2015 19
25 mars 2011 à 16:37
Salut,
tu peux montrer tes classes stp, car la ça me parait compliqué de t'aider..

Merci
0
Personne? snif snif
0
Aktayen Messages postés 189 Date d'inscription dimanche 31 mai 2009 Statut Membre Dernière intervention 17 décembre 2015 19
26 mars 2011 à 00:04
je t'avais demandé le détail de tes classes pour pouvoir t'aider..
0
Bonjour Aktayen,
désolée, ton précédent message n'apparaît pas. en fait, la classe de l'objet que j'aimerais modifier n'est pas de moi et je n'ai pas le droit de publier le code.
Mais pour un objet quelconque, comment procèderais-tu?ça me mettra peut-être sur la voie. Merci

foreach($finder as &$value)
{
foreach($value as $val)
{
// et là, j'aimerais faire des modification sauf que $val n'est qu'une simple copie de $value
}
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Aktayen Messages postés 189 Date d'inscription dimanche 31 mai 2009 Statut Membre Dernière intervention 17 décembre 2015 19
1 avril 2011 à 10:32
De principe, pour modifier un objet il faut qu'il y est des méthodes dans cette objet qui permettent de le faire.
Après c'est faut juste appeler les méthodes selon la situation.
0
Gremy87 Messages postés 352 Date d'inscription mercredi 19 mai 2010 Statut Membre Dernière intervention 19 mars 2014 38
Modifié par Gremy87 le 1/04/2011 à 10:47
Bonjour je suis d'accord avec Aktayen.

prenons un exemple:

class Objet1
{

private $val;

public function __construct()
{

}

public function setVal($valeur)
{
$this->val=$valeur;
}

public function getVal()
{
return $this->val;
}
}

class Objet2
{
private $objet;
public function __construct()
{

}

public function setValObj($obj)
{
$this->objet=$obj;
}

public function getValObj()
{
return $this->objet;
}
}

$obj1= new Objet1();

$obj2=new Objet2();

$obj1->setVal("toto");
$obj2->setValObj($obj1);

$obj2->getValObj()->setVal("tutu");

echo $obj1->getVal("tutu");



bon je peux pas tester ca mais de tete, ca doit etre bon.

la valeur de val de l objet 1 qui est contenu dans l objet 2 soit etre tutu

aucun foreach, juste les bonnes methodes

PS: j'ai mis des conneries dans mon code? chiant de pas pouvoir tester ce que l'on écrit ^^
RISE OF THE GEEK IS COMMING SOON!!! BWAHAHAHAHA
0
Je sais bien qu'il faut des méthodes pour faire des modifications. Le problème est que lorsque j'effectue ma modification (il y a déjà une méthode pour), elle porte sur la copie qui est faite par le foreach et non sur l'objet lui-même. et vu qu'avec les références, on a accès directement à la ligne de l'objet et non à une simple copie, j'essaie de creuser cette piste pour pas avoir à rajouter d'autres méthodes dans cette classe qui n'est pas la mienne mais si c'est impossible, je modifierai surement la classe. je vous tiens au courant. merci
0
En fait, mon problème vient surtout du framework, ce n'est donc pas un souci de php finalement. merci pour vos réponses.
0