首頁 >頭條 > 正文

PHP 7.4.0剛剛發布!一起看看有哪些新特性

轉載2019-12-07 18:02:2102783
phpStudy Linux 面板(小皮面板)
PHP 7.4.0 發布了,此版本標志著 PHP 7 系列的第四次特性更新。

PHP 7.4.0 進行了許多改進,并帶來了一些新特性,包括:

1.Typed Properties 類型屬性

類屬性現在支持類型聲明,以下示例將強制 $User-> id 只能分配 int 值,而 $User-> name 只能分配 string 值。

<?php
class User {
    public int $id;
    public string $name;
}
?>

2.Arrow Functions 箭頭函數

箭頭函數提供了用于定義具有隱式按值作用域綁定的函數的簡寫語法。

<?php
$factor = 10;
$nums = array_map(fn($n) => $n * $factor, [1, 2, 3, 4]);
// $nums = array(10, 20, 30, 40);
?>

將閉包傳遞給 array_map 或 array_filter 等函數時,它可以發揮極大的作用。

// 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
?>

6.Weak References 弱引用

弱引用使程序員可以保留對對象的引用,不會阻止對象被銷毀。

7.Allow Exceptions from __toString() 允許從 __toString() 拋出異常

現在允許從 __toString() 引發異常,以往這會導致致命錯誤,字符串轉換中現有的可恢復致命錯誤已轉換為 Error 異常。

8.Opcache Preloading Opcache 預加載

新增 Opcache 預加載支持。

此外還有一些棄用,以及從核心中刪除一些擴展,詳情查看:

https://www.php.net

https://www.php.net/manual/zh/migration74.new-features.php

php中文網最新課程二維碼
  • 相關標簽:PHP
  • 本文轉載于:oschina,如有侵犯,請聯系[email protected]刪除
  • 相關文章

    相關視頻


    網友評論

    文明上網理性發言,請遵守 新聞評論服務協議

    我要評論
  • 專題推薦

    推薦視頻教程
  • PHP7新特性手冊PHP7新特性手冊
  • PHP7的內核剖析PHP7的內核剖析
  • php7實戰開發cms內容管理系統php7實戰開發cms內容管理系統
  • 視頻教程分類
    118期四肖中特唯一