Utiliser des accolades avec des noms de variables dynamiques en PHP
P粉717595985
P粉717595985 2023-08-29 12:05:01
0
2
484
<p>J'essaie d'utiliser des noms de variables dynamiques (je ne suis pas sûr de leur véritable nom), mais quelque chose comme ceci : </p> <pre class="brush:php;toolbar:false;">for($i=0; $i<=2; $i++) { $("fichier" . $i) = fichier($filelist[$i]); } var_dump($file0);</pre> <p>renvoie <code>null</code>, ce qui me dit que cela ne fonctionne pas. Je ne sais pas quelle syntaxe ou quelle technologie je recherche, ce qui rend la recherche difficile. <code>$filelist</code> a été défini auparavant. </p>
P粉717595985
P粉717595985

répondre à tous(2)
P粉588660399

Aperçu

En PHP, il suffit d'ajouter un $ supplémentaire devant une variable pour la rendre dynamique :

$$variableName = $value;

Bien que je ne le recommande pas, vous pouvez même associer ce comportement :

$$$$$$$$DoNotTryThisAtHomeKids = $value;

Vous pouvez mais n'êtes pas obligé de placer $variableName 放在 {} entre :

${$variableName} = $value;

L'utilisation de {} n'est forcée que lorsque le nom de la variable lui-même est une combinaison de plusieurs valeurs, comme ceci :

${$variableNamePart1 . $variableNamePart2} = $value;

Cependant, il est recommandé de toujours utiliser {} car il est plus lisible.

Différence entre PHP5 et PHP7

Une autre raison de toujours utiliser {} est que PHP5 et PHP7 gèrent les variables dynamiques légèrement différemment, ce qui peut conduire à des résultats différents dans certains cas.

En PHP7, les variables dynamiques, les propriétés et les méthodes seront désormais évaluées strictement de gauche à droite, plutôt que les cas spéciaux mixtes de PHP5. L'exemple suivant montre comment l'ordre d'évaluation change.

Situation 1 :$$foo['bar']['baz']

  • Explication PHP5 :${$foo['bar']['baz']}
  • Explication PHP7 :${$foo}['bar']['baz']

Scénario 2 :$foo->$bar['baz']

  • Explication PHP5 :$foo->{$bar['baz']}
  • Explication PHP7 :$foo->{$bar}['baz']

Scénario 3 :$foo->$bar['baz']()

  • Explication PHP5 :$foo->{$bar['baz']}()
  • Explication PHP7 :$foo->{$bar}['baz']()

Situation 4 :Foo::$bar['baz']()

  • Explication PHP5 :Foo::{$bar['baz']}()
  • Explication PHP7 :Foo::{$bar}['baz']()
P粉043295337

Enveloppez-les dans {} :

${"file" . $i} = file($filelist[$i]);

Exemple pratique


Utiliser ${} est un moyen de créer des variables dynamiques, exemple simple :

${'a' . 'b'} = 'hello there';
echo $ab; // hello there
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal