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 à :
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!