Maison  >  Article  >  PHP 7.4.0 vient de sortir ! Voyons quelles sont les nouvelles fonctionnalités

PHP 7.4.0 vient de sortir ! Voyons quelles sont les nouvelles fonctionnalités

藏色散人
藏色散人avant
2019-11-30 10:34:155385parcourir

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 = [&#39;apple&#39;, &#39;pear&#39;];
$fruits = [&#39;banana&#39;, &#39;orange&#39;, ...$parts, &#39;watermelon&#39;];
// [&#39;banana&#39;, &#39;orange&#39;, &#39;apple&#39;, &#39;pear&#39;, &#39;watermelon&#39;];
?>

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

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer