PHP 7.4.0 a été publié, marquant la quatrième mise à jour de fonctionnalités de la série PHP 7.
PHP 7.4.0 est livré avec de nombreuses améliorations et apporte quelques nouvelles fonctionnalités, notamment :
1.Propriétés typées Attributs de type
les attributs de classe prennent désormais en charge les déclarations de type. L'exemple suivant forcera $User-> à se voir attribuer uniquement des valeurs int et $User->
<?php class User { public int $id; public string $name; } ?>
2.Fonctions fléchéesFonctions fléchées
Les fonctions fléchées fournissent un moyen de définir des fonctions implicites par valeur Raccourci syntaxe pour les fonctions liées au domaine.
<?php $factor = 10; $nums = array_map(fn($n) => $n * $factor, [1, 2, 3, 4]); // $nums = array(10, 20, 30, 40); ?>
Les fermetures peuvent être extrêmement utiles lors de leur transmission à des fonctions comme array_map ou array_filter.
// A collection of Post objects $posts = [/* … */]; $ids = array_map(fn($post) => $post->id, $posts);
3.Covariance de type de retour limité et contravariance de type d'argument Covariance de type de retour limité et contravariance de type de paramètre
Complet La prise en charge des covariances/contravariances n'est fournie que lors de l'utilisation du chargement automatique. Au sein d'un même fichier, seules les références de type non cycliques peuvent être utilisées, puisque toutes les classes doivent être disponibles avant d'être référencées.
<?php class A {} class B extends A {} class Producer { public function method(): A {} } class ChildProducer extends Producer { public function method(): B {} } ?>
4.Déballage à l'intérieur des tableaux Emballage des tableaux internes
<?php $parts = ['apple', 'pear']; $fruits = ['banana', 'orange', ...$parts, 'watermelon']; // ['banana', 'orange', 'apple', 'pear', 'watermelon']; ?>
5.Littéral numérique Séparateur Séparateur littéral numérique
Les littéraux numériques peuvent contenir des traits de soulignement entre les nombres.
<?php 6.674_083e-11; // float 299_792_458; // decimal 0xCAFE_F00D; // hexadecimal 0b0101_1111; // binary ?>
6.Références faiblesRéférences faibles
Les références faibles permettent aux programmeurs de conserver des références à des objets sans empêchera le l'objet d'être détruit.
7.Autoriser les exceptions de __toString()Autoriser la levée d'exceptions à partir de __toString()
Autoriser maintenant les exceptions from __toString() __toString() lève une exception, qui entraînait auparavant une erreur fatale. Les erreurs fatales récupérables existantes lors de la conversion de chaîne ont été converties en exceptions d'erreur.
8.Préchargement d'Opcache Préchargement d'Opcache
Ajout de la prise en charge du préchargement d'Opcache.
De plus, il existe certaines dépréciations et certaines extensions sont supprimées du noyau. Pour plus de détails, voir :
https://www.php.net
https : //www.php.net/manual/zh/migration74.new-features.php