Maison > Article > développement back-end > Résumé des nouvelles fonctionnalités de php7
Le contenu de cet article est un résumé des nouvelles fonctionnalités de php7. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
Cela fait presque trois ans que PHP7 est sorti, et il est maintenant développé vers la version PHP7.2.9. Sa sortie a apporté de grandes améliorations de performances à PHP, qui sont principalement dues à l'optimisation en profondeur du moteur Zend par PHP et réduisent également l'utilisation des ressources de PHP sur le système.
Les principaux changements sont les suivants :
Arbre de syntaxe abstraite
Dans les versions précédentes de PHP, le code PHP Le L'instruction ZendVM
est directement générée lors de l'étape d'analyse syntaxique, c'est-à-dire que l'instruction zend_language_parser.y
est directement générée dans opline
, qui couple le compilateur et l'exécuteur.
Un arbre de syntaxe abstraite est ajouté à PHP7. Tout d'abord, le code PHP est analysé pour générer un arbre de syntaxe abstraite, puis l'arbre de syntaxe abstraite est compilé dans une directive ZendVM
. L'ajout de l'arbre de syntaxe abstraite rend le compilateur PHP et l'exécuteur bien isolés. Le compilateur n'a pas besoin de se soucier des règles de génération des instructions. Ensuite, l'exécuteur compile l'arbre de syntaxe abstraite en instructions correspondantes selon ses propres règles. non Vous devez vous soucier de l'apparence des règles de syntaxe de cette instruction.
TLS natif
PHP7 utilise Native TLS
(stockage local du thread) pour enregistrer le pool de ressources du thread, en termes simples, via __thread
. Marquez une variable globale de sorte que cette variable globale soit exclusive au thread et que les modifications effectuées par différents threads ne s'affecteront pas les unes les autres.
Spécifier les paramètres de fonction et les types de valeurs de retour
En PHP7, vous pouvez spécifier les paramètres de fonction et les types de valeurs de retour.
Modifications dans la structure zval
PHP7 a déplacé le comptage de références vers un value
spécifique, ce qui est plus raisonnable. De plus, la taille de la structure zval
a également été réduite de 24 octets à 16 octets. Il s'agit d'un point d'optimisation où PHP7 peut réduire l'utilisation des ressources système.
Gestion des exceptions
De nombreuses opérations dans PHP5.x généreront directement des erreurs d'erreur. Dans PHP7, la plupart des erreurs seront transformées en émission d'exceptions. De cette façon, il peut être capturé via try catch
.
Changements dans HashTable
Il y a de très gros changements dans HashTable
en PHP7 La taille de la structure HashTable
a été réduite. de 72 octets à 56 octets, en même temps, la structure des éléments du tableau Bucket
est également réduite de 72 octets à 32 octets.
Executor
n'utilise plus la méthode de transmission des paramètres en PHP7. Au lieu de cela, execute_data
et opline
sont transmis via les registres. Le stockage évite les opérations de pile fréquentes causées par le passage de paramètres. Dans le même temps, les registres sont accessibles plus rapidement que la mémoire.
Nouvelle méthode d'analyse des paramètres
PHP5.x PHP7 fournit une autre façon d'analyser les paramètres de fonction via zend_parse_parameters()
. mais la nouvelle méthode d'analyse est plus rapide.
Recommandations associées :
Introduction aux nouvelles fonctionnalités de PHP7
Introduction aux nouvelles fonctionnalités de 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!