[PHP] Références/Pointeurs (question simple mais réponse difficile)

Voilà mon script :


$a = ‘hello’;
$b = &$i." - $a\n";

for ($i=1;$i<=3;$i++)
{
echo $b;
};


Je voudrais que le résultat soit :
1 - hello
2 - hello
3 - helo

Mais le script m’affiche :
123 :’(

Notez que le script final est beaucoup plus complexe, mais ce que je veux faire c’est stocker dans $b une chaine de caractères qui contient un alias de $i.

Comment faire ? :frowning:

$a = ‘hello’;

for ($i=1;$i<=3;$i++)
{
$b = &$i." - $a\n";
echo $b;
};

Merci Dalai-Lama :slight_smile:

Malheureusement, ce n’est pas ce que je veux faire.
Je voudrais que $b soit défini avant la boucle FOR.
C’est là que ça devient compliqué mais je sais que c’est possible.

mélanger une adresse vers une variable et du texte, pour moi c pas possible

Mais alors que faire ? :sweat:

Dis nous clairement ce que tu veux faire dans l’ensemble et on pourra t’aider.
Sinon tu peux chercher avec la fonction eval()

YESSSSSSSSSSSSSSSSSSSSSSSS !

Merci beaucoup Dalai Lama :slight_smile:

J’ai essayé le code suivant qui focntionne parfaitement :

$a = ‘hello’;
$b = ‘echo “$i - $a\n”;’;

for ($i=1;$i<=3;$i++)
{
eval($b);
};

Je ne peux pas t’expliquer très exactement le but du code “final” car c’est extremement complexe. Mais pour résumer, je veux définir en début de script une liste de variables qui se construisent en fonction de la variable d’incrémentation de chaque boucle FOR (càd $i).

Encore merci !

Je poste juste ce message pour dire que sur un autre forum on m’a proposé une solution qui vaut également le coup :

$b = create_function( '', 'global $i,$a; return $i." - ".$a;'); 

for ($i=1;$i<=3;$i++) 
{ 
echo $b(); 
}