來源:中國電商物流網(wǎng) 發(fā)布時間:2019-11-30 12:29
PHP 7.4.0發(fā)布了,此版本標志著PHP 7系列的第四次特性更新。
PHP 7.4.0進行了許多改進,并帶來了一些新特性,包括:
Typed Properties類型屬性
類屬性現(xiàn)在支持類型聲明,以下示例將強制$User-> id只能分配int值,而$User-> name只能分配string值。
class User {
public int $id;
public string $name;
}
?>
Arrow Functions 箭頭函數(shù)
箭頭函數(shù)提供了用于定義具有隱式按值作用域綁定的函數(shù)的簡寫語法。
$factor = 10;
$nums = array_map(fn($n) => $n * $factor, [1, 2, 3, 4]);
// $nums = array(10, 20, 30, 40);
?>
將閉包傳遞給array_map或array_filter等函數(shù)時,它可以發(fā)揮極大的作用。
// A collection of Post objects $posts = [];
$ids = array_map(fn($post) => $post->id, $posts);
Limited Return Type Covariance and Argument Type Contravariance 有限返回類型協(xié)變與參數(shù)類型逆變
僅當使用自動加載時,才提供完全協(xié)變/逆變支持。在單個文件中,只能使用非循環(huán)類型引用,因為所有類在被引用之前都必須可用。
class A {}
class B extends A {}
class Producer {
public function method(): A {}
}
class ChildProducer extends Producer {
public function method(): B {}
}
?>
Unpacking Inside Arrays 打包內(nèi)部數(shù)組
$parts = ['apple', 'pear'];
$fruits = ['banana', 'orange', ...$parts, 'watermelon'];
// ['banana', 'orange', 'apple', 'pear', 'watermelon'];
?>
Numeric Literal Separator 數(shù)值文字分隔符
數(shù)字文字可以在數(shù)字之間包含下劃線。
6.674_083e-11; // float
299_792_458; // decimal
0xCAFE_F00D; // hexadecimal
0b0101_1111; // binary
?>
Weak References 弱引用
弱引用使程序員可以保留對對象的引用,不會阻止對象被銷毀。
Allow Exceptions from __toString() 允許從__toString()拋出異常
現(xiàn)在允許從__toString()引發(fā)異常,以往這會導致致命錯誤,字符串轉(zhuǎn)換中現(xiàn)有的可恢復致命錯誤已轉(zhuǎn)換為 Error 異常。
Opcache Preloading Opcache預加載
新增Opcache預加載支持。
此外還有一些棄用,以及從核心中刪除一些擴展。
特別提醒:本網(wǎng)內(nèi)容轉(zhuǎn)載自其他媒體,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點。其原創(chuàng)性以及文中陳述文字和內(nèi)容未經(jīng)本站證實,對本文以及其中全部或者部分內(nèi)容、文字的真實性、完整性、及時性本站不作任何保證或承諾,并請自行核實相關(guān)內(nèi)容。本站不承擔此類作品侵權(quán)行為的直接責任及連帶責任。如若本網(wǎng)有任何內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系我們,本站將會在24小時內(nèi)處理完畢。