Maison  >  Article  >  développement back-end  >  Différences entre PHP5 et PHP7 concernant les fonctions get

Différences entre PHP5 et PHP7 concernant les fonctions get

藏色散人
藏色散人avant
2021-10-28 16:21:321706parcourir

La différence entre PHP5 et PHP7 dans la prise d'éléments de tableau comme noms de fonctions dynamiques

En PHP5 et PHP7, lors de l'obtention de noms de fonctions/méthodes via des variables et de l'exécution de fonctions/méthodes, le même code peut ne pas fonctionner en raison de stratégies d'interprétation différentes entre versions s'exécutent.

Exemple

$a = ['add', 'sub'];
class Test
{
  public function add()
  {
    echo 1 + 2;
  }
}
$t = new Test();
$t->$a[0]();

L'exemple ci-dessus peut s'exécuter normalement sous PHP5.6, mais sous PHP7, il générera une erreur fatale : le nom de la fonction doit être une chaîne. En effet, lors de l'exécution de t->t−>a0 sous PHP5, $a[0] sera exécuté en premier, la valeur de l'élément sera obtenue, puis la méthode spécifique de l'objet sera exécutée.

Sous PHP7, t->t−>a sera exécuté en premier, provoquant une erreur et l'interruption de l'exécution. Si vous devez l'exécuter normalement sous PHP7, vous devez le modifier en t->{a[0]}().

Pour les différences spécifiques, veuillez vous référer à :

Différences entre PHP5 et PHP7 concernant les fonctions get

Apprentissage recommandé : "Tutoriel PHP7"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer