Utiliser des accolades avec des noms de variables dynamiques en PHP
P粉717595985
P粉717595985 2023-08-29 12:05:01
0
2
412

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 :

for($i=0; $i<=2; $i++) { $("fichier" . $i) = fichier($filelist[$i]); } var_dump($file0);

renvoie null, 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. $filelist a été défini auparavant.

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
      À propos de nous Clause de non-responsabilité Sitemap
      Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!