Nouvelles fonctionnalités PHP7.4
PHP7.4 est sorti. Apporté quelques nouvelles fonctionnalités. Cela nous permet d'écrire moins de code.
1. Ajouter un type qualifié aux attributs
<?php class User { public int $age; public string $name } $user = new User(); $user->age = 10; $user->name = "张三"; //error $user->age = "zhang";//需要传递int
2. Fonction flèche
Cette fonctionnalité fait essentiellement référence à la syntaxe d'ES6 en Js. . Cela nous permet d'écrire moins de code. Si votre code a la fonction fn. Peut entrer en conflit
<?php $factor = 10; $nums = array_map(fn($n)=>$n * $factor,[1,2,3]);//[10,20,30] //之前的写法 $nums = array_map(function($num)use($factor){ return $num * $factor; },[1,2,3])
3. Covariance de type de retour limitée et contravariance de type de paramètre
La prise en charge complète de la covariance/contravariance 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 du tableau
Utilisez l'opérateur spread... pour décompresser le tableau. Cette fonctionnalité devrait être absorbée par js. Voir l'exemple
<?php
$parts = ['apple', 'pear'];
$fruits = ['banana', 'orange', ...$parts, 'watermelon'];//['banana', 'orange', 'apple', 'pear', 'watermelon'];
//老的写法
$fruits = array_merge(['banana', 'orange'],$parts,['watermelon']);
5. Affectation d'opérateur de fusion nulle
<?php $array['key'] ??= computeDefault(); // 老的写法 if (!isset($array['key'])) { $array['key'] = computeDefault(); } ?>
6. >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 ?>
7. Autoriser la levée d'exceptions depuis __toString()
Permet désormais la levée d'exceptions depuis __toString(). Dans le passé, cela provoquait une erreur fatale existante récupérable lors de la conversion de chaîne. Les erreurs fatales ont été converties en exceptions d'erreur.
8. Filtre
Ajout de FILTER_VALIDATE_FLOAT
<?php filter_var(1.00,FILTER_VALIDATE_FLOAT); filter.filters.validate
9. strip_tags prend en charge les tableaux
<?php
strip_tags($str,['p','a','div']);
//老的写法
strip_tags($str,"<p><a><div>");
废弃的特性
1. 没有显式括号的嵌套三元运算符
<?php
1 ? 2 : 3 ? 4 : 5; // deprecated
(1 ? 2 : 3) ? 4 : 5; // ok
1 ? 2 : (3 ? 4 : 5); // ok
?>
2. Accès par accolades à l'index du tableau Pour être honnête, c'est la première fois que j'ai je l'ai vu et il est abandonné, ce qui indique que personne ne l'utilisera de cette façon. 3. Nombres réels réels et is_real 4. Le mot-clé parent est utilisé dans une classe sans parent L'utilisation de parent dans une classe sans parent entraînera une compilation. erreur. 5. La fonction money_format money_format est obsolète et remplacée par numberFormater 6 Extensions supprimées 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!<?php
$arr = ["a"=>"111"];
$index = "a";
$arr{$index}//废弃
$arr[$index];
<?php
$num = "";
$a = (real) $num;//废弃
$a = (float) $num;
<?php
class Test{
public function index()
{
return parent::index();//编译错误
}
}
1.Firebird/Interbase
2.Recode
3.WDDX