PHP7.4.0发布了,此版别标志着PHP7系列的第四次特性更新。
PHP7.4.0进行了许多改进,并带来了一些新特性,包括:
1.TypedProperties类型特点
类特点现在支撑类型声明,以下示例将强制$User->id只能分配int值,而$User->name只能分配string值。
classUser{
publicint$id;
publicstring$name;
}
2.ArrowFunctions箭头函数
箭头函数提供了用于界说具有隐式按值效果域绑定的函数的简写语法。
$factor=10;
$nums=array_map(fn($n)=>$n*$factor,[1,2,3,4]);
//$nums=array(10,20,30,40);
将闭包传递给array_map或array_filter等函数时,它能够发挥极大的效果。
//AcollectionofPostobjects$posts=[/*…*/];
$ids=array_map(fn($post)=>$post->id,$posts);
3.LimitedReturnTypeCovarianceandArgumentTypeContravariance有限返回类型协变与参数类型逆变
仅当使用主动加载时,才提供完全协变/逆变支撑。在单个文件中,只能使用非循环类型引证,由于所有类在被引证之前都必须可用。
classA{}
classBextendsA{}
classProducer{
publicfunctionmethod():A{}
}
classChildProducerextendsProducer{
publicfunctionmethod():B{}
}
4.UnpackingInsideArrays打包内部数组
$parts=[‘apple’,’pear’];
$fruits=[‘banana’,’orange’,…$parts,’watermelon’];
//[‘banana’,’orange’,’apple’,’pear’,’watermelon’];
?>
5.NumericLiteralSeparator数值文字分隔符
数字文字能够在数字之间包含下划线。
6.674_083e-11;//float
299_792_458;//decimal
0xCAFE_F00D;//hexadecimal
0b0101_1111;//binary
6.WeakReferences弱引证
弱引证使程序员能够保存对目标的引证,不会阻止目标被毁掉。
7.AllowExceptionsfrom__toString()允许从__toString()抛出反常
现在允许从__toString()引发反常,以往这会导致丧命过错,字符串转换中现有的可恢复丧命过错已转换为Error反常。
8.OpcachePreloadingOpcache预加载
新增Opcache预加载支撑。
此外还有一些弃用,以及从核心中删去一些扩展,详情查看: