PHP 7.4.0 發布了,此版本標誌著 PHP 7 系列的第四次特性更新。
PHP 7.4.0 進行了許多改進,並帶來了一些新特性,包括:
類別屬性現在支援類型聲明,以下範例將強制$User-> id 只能指派int 值,而$User-> name 只能指派string 值。<?php class User { public int $id; public string $name; } ?>
<?php $factor = 10; $nums = array_map(fn($n) => $n * $factor, [1, 2, 3, 4]); // $nums = array(10, 20, 30, 40); ?>
// A collection of Post objects $posts = [/* … */]; $ids = array_map(fn($post) => $post->id, $posts);
3.Limited Return Type Covariance and Argument Type Contravariance 有限回傳類型協變與參數類型逆變
#僅當使用自動加載時,才提供完全協變/逆變支援。在單一檔案中,只能使用非循環類型引用,因為所有類別在被引用之前都必須可用。<?php class A {} class B extends A {} class Producer { public function method(): A {} } class ChildProducer extends Producer { public function method(): B {} } ?>
4.Unpacking Inside Arrays 打包內部陣列
<?php $parts = ['apple', 'pear']; $fruits = ['banana', 'orange', ...$parts, 'watermelon']; // ['banana', 'orange', 'apple', 'pear', 'watermelon']; ?>
#5.Numeric Literal Separator 數值文字分隔符號
數字文字可以在數字之間包含底線。<?php 6.674_083e-11; // float 299_792_458; // decimal 0xCAFE_F00D; // hexadecimal 0b0101_1111; // binary ?>
7.Allow Exceptions from __toString() 允許從__toString() 拋出例外
#現在允許從__toString() 引發異常,以往這會導致致命錯誤,字串轉換中現有的可恢復致命錯誤已轉換為Error 異常。8.Opcache Preloading Opcache 預先載入
新增 Opcache 預先載入支援。 此外還有一些棄用,以及從核心中刪除一些擴展,詳情查看:#https://www.php.nethttps: //www.php.net/manual/zh/migration74.new-features.php##########################################################################################################################