Dans cet article, nous partageons principalement avec vous les nouvelles fonctionnalités de PHP7 que nous devrions apprendre et utiliser, en espérant aider tout le monde.
PHP7 a été officiellement publié en novembre 2015. Cette mise à jour peut être considérée comme une étape importante pour PHP. Elle apportera des améliorations significatives des performances et de nouvelles fonctionnalités, ainsi que certaines fonctionnalités de la version précédente. L'éditeur de cet article travaillera avec vous pour comprendre et discuter des nouvelles fonctionnalités de PHP7.
1. Déclaration de type scalaire
Nous savons que PHP est un langage de programmation faiblement typé, il ne fournit donc aucune méthode pour spécifier le type des paramètres d'entrée et les valeurs de retour. PHP7 brise ce statu quo et ajoute la prise en charge des types scalaires (. int , float, string, bool), ajoutez l'instruction declare(strict_types=1) pour déclarer si la vérification de type est stricte, regardons un morceau de code :
(strict_types=) { $x + $ y;} add(, );
Les types valides sont : nom de classe/interface, self, array, callable, bool, float, int et string.
?? Opérateur de fusion NULL
L'opérateur de fusion NULL a été ajouté dans PHP7. Ne sous-estimez pas ce « ?? » Avec lui, nous pouvons facilement obtenir un paramètre et fournir un paramètre lorsqu'il est vide. Comment l'opérateur ?? renvoie-t-il le côté gauche si la valeur sur son côté gauche existe et n'est pas NULL, sinon sa valeur sur le côté droit sera renvoyée. Expérimentons la puissance de l'opérateur ?? à travers le morceau de code suivant.
<?php // 获取user参数的值(如果为空,则用'nobody') // PHP5中我们这样来实现: $username = isset($_GET['user']) ? $_GET['user'] : 'nobody'; // PHP7中,使用??运算符更便捷: $username = $_GET['user'] ?? 'nobody'; ?>
Classe anonyme
Comme son nom l'indique, une classe anonyme n'a pas de nom de classe, et sa déclaration et son instanciation prennent en même temps en charge l'instanciation d'une classe anonyme via. nouvelle classe, qui peut être utilisée pour remplacer une définition de classe complète de « jetable ».
echo ( { { ; }})->myMethod();
Plus d'erreurs d'erreur peuvent être gérées avec des exceptions
Plus d'erreurs dans PHP7 deviennent des exceptions capturables et sont renvoyées au développeur. Si elles ne sont pas détectées, ce sera une erreur. devient une exception qui peut être gérée dans le programme. Par défaut, Error provoquera directement l'interruption du programme, tandis que PHP7 le capture et le gère via des blocs try/catch, permettant au programme de continuer à s'exécuter, offrant aux programmeurs des options plus flexibles.
Exemple de code :
nonExistFunction($arg);
À ce stade, le code ci-dessus affichera l'erreur "Erreur fatale : appel à une méthode de fonction membre() sur un non-objet", et ceci une erreur fatale arrêtera l’exécution continue du code suivant.
Donc, si vous souhaitez continuer à exécuter le code, vous pouvez le résoudre grâce à la gestion des exceptions :
{ nonExistFunction($arg); } (EngineException $e ) { ;}
Combiné avec l'opérateur de comparaison (<=> )
Ce n'est pas le cas. Pour plus d'explications, regardons directement l'exemple de code. Vous pouvez facilement comprendre la fonction de cet opérateur grâce au code.
{ ($a < $b) ? : (($a > $b) ? : )} { $a <=> $b;}
Définir les constantes de tableau
Dans le passé, lorsque nous utilisions définir() pour définir des constantes, le type de données ne prenait en charge que les scalaires, mais en PHP7, il prend en charge la définition de constantes de types de tableau .
define('MYCONSTANT', array('a','b','c'))
Il y a de nombreuses nouvelles fonctionnalités dans PHP7. Aujourd'hui, nous les présenterons en premier. Nous continuerons à les mettre à jour à l'avenir. Nous accueillons également les ajouts des PHPers.
Recommandations associées :
Explication détaillée de la clé pour doubler les performances de PHP7
Comment créer un environnement de test de performances pour php7