Maison  >  Article  >  développement back-end  >  Résumé des nouvelles fonctionnalités de php7

Résumé des nouvelles fonctionnalités de php7

不言
不言original
2018-08-29 10:41:412512parcourir

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn