Maison > développement back-end > tutoriel php > Quelles sont les nouveautés de php7 ?

Quelles sont les nouveautés de php7 ?

青灯夜游
Libérer: 2023-04-06 17:36:01
original
5539 Les gens l'ont consulté

Quelles sont les nouveautés de php7 ?

Quelles sont les nouvelles fonctionnalités de php7 ? Dans PHP7, étant donné que la plupart du code du moteur sous-jacent a été modifié et que les performances de PHP ont été améliorées grâce à diverses méthodes, une nouvelle syntaxe a été ajoutée à PHP7. L'utilisation de cette syntaxe peut également contribuer à améliorer les performances. Voici une brève introduction, j'espère qu'elle vous sera utile.

1. La déclaration de type de paramètre scalaire

peut utiliser une chaîne (string), un entier (int), un nombre à virgule flottante (float) et une valeur booléenne (bool), Pour déclarer le type de paramètre et la valeur de retour de la fonction ; auparavant, seuls deux styles de nom de classe, d'interface, de tableau et Callable étaient pris en charge : le mode de conversion forcée (par défaut) et le mode strict

declare(strict_types=1);
function add(int $a, int $b): int {
    return $a+$b;
}
 
echo add(1, 2);
echo add(1.5, 2.6);
Copier après la connexion

php5 ne peut pas exécuter le code ci-dessus. Lorsque php7 est exécuté, il affichera d'abord un 3 et une erreur (Argument 1 passed to add() must be of the type integer, float given) ;

Il existe deux modes pour la déclaration de type scalaire : obligatoire (par défaut) et mode strict.

declare(strict_types=1) doit être placé dans la première ligne du fichier pour exécuter le code. Le fichier actuel est valide !

2. set_exception_handler() ne garantit plus que l'objet exception reçu doit être un objet Exception

En PHP 7, il existe de nombreuses erreurs fatales et récupérables les erreurs fatales sont converties en exceptions pour le traitement. Ces exceptions héritent de la classe Error, qui implémente l'interface Throwable (toutes les exceptions implémentent cette interface de base).

PHP7 facilite davantage les développeurs et leur donne un plus grand contrôle sur le programme. Parce que par défaut, l'erreur provoquera directement l'interruption du programme, tandis que PHP7 offre la possibilité de la capturer et de la traiter, permettant ainsi au programme de continuer. la mise en œuvre continue de fournir aux programmeurs des options plus flexibles.

3. Nouvel opérateur "<=>"

Syntaxe :

$c = $a <=> $b
Copier après la connexion

Si $a > de est 1

Si $a == $b, la valeur de $c est 0

Si $a < 🎜 >

4. Nouvel opérateur "??"

Si la variable existe et que la valeur n'est pas NULL, elle renverra sa propre valeur, sinon Renvoie son deuxième opérande.

//原写法
$username = isset($_GET[&#39;user]) ? $_GET[&#39;user] : &#39;nobody&#39;;
//现在
$username = $_GET[&#39;user&#39;] ?? &#39;nobody&#39;;
5.define() 定义常量数组
define(&#39;ARR&#39;,[&#39;a&#39;,&#39;b&#39;]);
echo ARR[1];// a
Copier après la connexion

6. AST : Arbre de syntaxe abstraite, Arbre de syntaxe abstraite

AST joue le rôle d'un middleware dans le processus de compilation PHP, remplaçant directement la sortie originale de l'opcode de l'interpréteur De cette façon, le découplage de l'interpréteur (analyseur) et du compilateur (compilateur) peut réduire une partie du code Hack et, en même temps, rendre l'implémentation plus facile à comprendre et à maintenir.

PHP5 : code PHP - > Syntaxe de l'analyseur-> OPCODE -> Exécuter

PHP7 : Analyse de la syntaxe de l'analyseur-> 7. Fonction anonyme

$anonymous_func = function(){return &#39;function&#39;;};
echo $anonymous_func(); // 输出function
Copier après la connexion

8. Prise en charge du format de caractères Unicode (echo « u{9999} »)

9.

Empêche l'injection de code de données illégales et fournit des données désérialisées plus sûres.

10. Optimisation des références d'espace de noms

// PHP7以前语法的写法 
use FooLibrary\Bar\Baz\ClassA; 
use FooLibrary\Bar\Baz\ClassB; 

// PHP7新语法写法 
use FooLibrary\Bar\Baz\{ ClassA, ClassB};
Copier après la connexion

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!

Étiquettes associées:
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal