Bonsoir à tous,
J'ai un gros trou de mémoire, je souhaiterais pouvoir accèder de manière dynamique à un attribut d'un objet en PHP.
Je m'explique.
J'ai un objet $OBJET qui à plusieurs centaines d'attribut comme Attr1, Attr2, Attr3 etc ...
Comme je me sers de cet objet de faire des requêtes SQL dynamique (elles aussi), j'aimerais pouvoir récupérer la valeur de l'attribut de l'objet en définissant, dynamiquement, l'attribut.
En code, ça ressemble à ceci :
Dans mes souvenirs il me semblait qu'en mettant entre crochet une variable, je pouvais appeler l'attribut dynamiquement.
Mais malheureusement il n'en ai rien
Pour infos, l'objet comporte bien des valeurs sur ses attributs (vérifier lors d'un var_dump)..
Avec le code ci-dessous, le tableau me retourne " string(1) " pour l'attribut dynamique, bref, c'est pas ça.
Si quelqu'un à une idée, je suis preneur. Par avance merci
Edit: Boulet je suis, j'avais oublié les parenthèses ...
Modifié par Super_baloo8 (19 Jan 2017 - 00:07)
J'ai un gros trou de mémoire, je souhaiterais pouvoir accèder de manière dynamique à un attribut d'un objet en PHP.
Je m'explique.
J'ai un objet $OBJET qui à plusieurs centaines d'attribut comme Attr1, Attr2, Attr3 etc ...
Comme je me sers de cet objet de faire des requêtes SQL dynamique (elles aussi), j'aimerais pouvoir récupérer la valeur de l'attribut de l'objet en définissant, dynamiquement, l'attribut.
En code, ça ressemble à ceci :
for($i=1; $i<=$Count; $i++)
{
$dynamique = 'Attr'.$i;
$valeur = $OBJET->{$dynamique};
$query.= '`'.$dynamique.'` LIKE :'.$dynamique.' AND ';
$Loopback[':'.$dynamique] = $valeur.'%';
}
Dans mes souvenirs il me semblait qu'en mettant entre crochet une variable, je pouvais appeler l'attribut dynamiquement.
$OBJET->{$dynamique};
Mais malheureusement il n'en ai rien
Pour infos, l'objet comporte bien des valeurs sur ses attributs (vérifier lors d'un var_dump)..
Avec le code ci-dessous, le tableau me retourne " string(1) " pour l'attribut dynamique, bref, c'est pas ça.
Si quelqu'un à une idée, je suis preneur. Par avance merci
Edit: Boulet je suis, j'avais oublié les parenthèses ...
$OBJET->{$dynamique}();
Modifié par Super_baloo8 (19 Jan 2017 - 00:07)