中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP 8.1有什么新特性

發布時間:2021-07-10 13:59:22 來源:億速云 閱讀:208 作者:chen 欄目:編程語言

這篇文章主要介紹“PHP 8.1有什么新特性”,在日常操作中,相信很多人在PHP 8.1有什么新特性問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”PHP 8.1有什么新特性”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

PHP 8.1目前正在積極開發中,可能會在2021年11月末左右發布。我們已經了解了一些函數,更改和不贊成使用的內容,因此讓我們逐一介紹它們。

# New features

與每個版本一樣,PHP 8.1添加了一些不錯的新函數。請記住,該列表將在一年中增長。我還將列出尚未實現的函數,但是很有可能最終使用該語言。我將確保始終標記這些函數。

# 用字符串鍵解包數組 RFC

PHP 7.4 中已經允許數組拆包,但它僅適用于數字鍵。之前不支持字符串鍵的原因是因為關于如何合并數組重復項沒有任何共識。 RFC通過遵循 array_merge 的語義來徹底解決此問題:

$array1 = ["a" => 1];

$array2 = ["b" => 2];

$array = ["a" => 0, ...$array1, ...$array2];var_dump($array); // ["a" => 1, "b" => 2]

# 新增 array_is_list 函數 RFC

您可能需要不時處理一次:確定數組的鍵是否按數字順序,從索引0開始。就像 json_encode 決定是否應將數組編碼為數組或對象。

PHP 8.1添加了一個內置函數來確定數組是否是具有這些語義的列表:

$list = ["a", "b", "c"];array_is_list($list); // true$notAList = [1 => "a", 2 => "b", 3 => "c"];array_is_list($notAList); // false$alsoNotAList = ["a" => "a", "b" => "b", "c" => "c"];array_is_list($alsoNotAList); // false

# 八進制整數表示法 RFC

現在,您可以使用0o和0O表示八進制數字。通過在數字前面加上 0 來表示前面的符號仍然有效。

016 === 0o16; // true016 === 0O16; // true

# Enums枚舉 RFC

此RFC仍在討論中。

添加枚舉將是PHP的重大改進,因此我非常期待看到此RFC進一步發展。為了讓您快速預覽它們的外觀,下面是一個代碼示例:

enum Status {  case Pending;  case Active;  case Archived;
}

這就是它們的用法:

class Post{public function __construct(private Status $status = Status::Pending;
    ) {}public function setStatus(Status $status): void{// …}
}

$post->setStatus(Status::Active);

# 限制$GLOBALS使用 RFC

對$GLOBALS的使用方式進行小的更改將對所有數組操作的性能產生重大影響。 Nikita很好地解釋了 RFC 中的問題和解決方案。更改意味著$GLOBALS無法再處理某些邊緣情況。 "不再支持對 $GLOBALS進行整體寫入。以下所有操作都會產生編譯時錯誤"

$GLOBALS = [];
$GLOBALS += [];
$GLOBALS =& $x;
$x =& $GLOBALS;unset($GLOBALS);

最重要的是,通過引用傳遞$GLOBALS會生成運行時錯誤:

by_ref($GLOBALS); // Run-time error

Nikita分析了Packagist上排名前2000的包裝,僅發現23個案件將受到此更改的影響。我們可以得出結論,此更改(從技術上來說是重大突破)的影響將很小,這就是內部人員決定在PHP 8.1中添加它的原因。

# 棄用將null傳遞給內部函數 RFC

更改很簡單:內部函數當前接受null表示不可為空的參數,該RFC棄用了該行為。例如,這目前是可能的:

str_contains("string", null);

在PHP 8.1中,這些類型的錯誤將引發棄用警告,在PHP 9中,它們將轉換為類型錯誤。

到此,關于“PHP 8.1有什么新特性”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

广南县| 济南市| 云龙县| 蓝山县| 盐边县| 郸城县| 崇仁县| 容城县| 永福县| 柳河县| 金川县| 杭锦后旗| 习水县| 朝阳县| 梅州市| 彩票| 游戏| 德安县| 谷城县| 洛阳市| 平昌县| 崇左市| 思南县| 若尔盖县| 仁寿县| 高雄县| 无为县| 朝阳市| 延庆县| 云龙县| 灯塔市| 宝鸡市| 红原县| 丰顺县| 晋州市| 九龙县| 聊城市| 花莲县| 宿迁市| 香港| 革吉县|