來源:中國電商物流網(wǎng) 發(fā)布時(shí)間:2019-11-30 12:29
PHP 7.4.0發(fā)布了,此版本標(biāo)志著PHP 7系列的第四次特性更新。
PHP 7.4.0進(jìn)行了許多改進(jìn),并帶來了一些新特性,包括:
Typed Properties類型屬性
類屬性現(xiàn)在支持類型聲明,以下示例將強(qiáng)制$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ù)時(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ù)類型逆變
僅當(dāng)使用自動(dòng)加載時(shí),才提供完全協(xié)變/逆變支持。在單個(gè)文件中,只能使用非循環(huán)類型引用,因?yàn)樗蓄愒诒灰弥岸急仨毧捎谩?/p>
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 弱引用
弱引用使程序員可以保留對(duì)對(duì)象的引用,不會(huì)阻止對(duì)象被銷毀。
Allow Exceptions from __toString() 允許從__toString()拋出異常
現(xiàn)在允許從__toString()引發(fā)異常,以往這會(huì)導(dǎo)致致命錯(cuò)誤,字符串轉(zhuǎn)換中現(xiàn)有的可恢復(fù)致命錯(cuò)誤已轉(zhuǎn)換為 Error 異常。
Opcache Preloading Opcache預(yù)加載
新增Opcache預(yù)加載支持。
此外還有一些棄用,以及從核心中刪除一些擴(kuò)展。
特別提醒:本網(wǎng)內(nèi)容轉(zhuǎn)載自其他媒體,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)。其原創(chuàng)性以及文中陳述文字和內(nèi)容未經(jīng)本站證實(shí),對(duì)本文以及其中全部或者部分內(nèi)容、文字的真實(shí)性、完整性、及時(shí)性本站不作任何保證或承諾,并請(qǐng)自行核實(shí)相關(guān)內(nèi)容。本站不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。如若本網(wǎng)有任何內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系我們,本站將會(huì)在24小時(shí)內(nèi)處理完畢。