PHP modifier un objet itéré
Tety
-
Tety -
Tety -
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
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:
- PHP modifier un objet itéré
- Modifier dns - Guide
- Modifier liste déroulante excel - Guide
- Modifier l'extension d'un fichier - Guide
- Modifier story facebook - Guide
- Modifier un pdf gratuitement - Guide
8 réponses
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
}
}
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
}
}
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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.
Après c'est faut juste appeler les méthodes selon la situation.
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
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
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