PHP基金會每月都會在部落格上發表當月的PHP核心的最新進展。本文介紹的是6月的進展。
PHP8.2 的QA 版本和特性凍結
#PHP8.2計劃於11 月24 日 發布, PHP的版本發行管理員們已經發布了PHP8.2的Alpha 1和Alpha 2的版本。
這些Alpha 版本不適合用於生產環境,而是用作測試環境和本地開發的版本節點。
已經編譯的windows版本可以在https://windows.php.net/qa/ 上找到,Docker 映像可以在Docker Hub 上找到,原始碼在Github 上的php/php-src中,可自行編譯,在Homebrew 上,PHP 8.2-dev 軟體包可從shivammathur/php 查看相關指令。
7 月 19 日 是 PHP 8.2 特性凍結日期,在此之後PHP8.2不在接收新的特性建議。 PHP的新特性都有2週的討論期和2週的投票期。在特性凍結之前必須對所有的RFC(提案)進行投票。
RFC的更新
上次在 PHP8.2會有哪些改變(效能改善、新功能)! 中介紹了一部分已經通過的新特性,如今又有一些新特性被投票通過,還有一些正在進行中。
已實作:允許false和null作為獨立型別
在先前的文章中已經介紹過,有些開發者並不看好這件事,認為false作為獨立類型並沒有什麼用。在這之前false只能和其他型別一起聯合聲明。
你可以在PHP的播客中了解對開發者George Peter Banyard的訪談。 https://phpinternals.news/99 ,他提到大量的傳統函數會在內部回傳false和拋出例外。並不會回傳有實際意義的東西,回傳false也許是為了中斷目前函數程式碼的執行。所以使用false作為獨立的回傳值也是有意義的。
已實現:允許true作為獨立類型
#早在之前的文章中,小編就提到過,false可以作為獨立的類型(並且進行聲明),但是true卻不行。此提案建議新增true作為獨立類型,使PHP的類型系統根據表現力。
已通過:隨機擴展5.x
#是Go Kudo 提出的RFC 的第五次迭代,改進PHP的隨機數產生器,並且將一些列的改動移動到單獨的擴充中。
已通過:為is_callable新增棄用通知,並新增callable類型
PHP以後將棄用is_callable函數的部分錶現,但在PHP8.2中只會產生棄用通知。這樣做的原因,簡單來講,is_callable使用起來語法混亂。但注意,is_callable只是放棄了判斷字串的用法,例如is_callable(‘myFunction’),對於其他類型仍然是可用的,例如一個變數代表的是一個回呼函數。
已通過:析取範式類型
#該提案提議PHP支持更多的類型聲明組合,例如:
(A&B&D)|int|null
就是說該值有可能是null,有可能是整數型,也有可能是實作了A介面、B介面、D介面的物件。
對此可以查看提案詳情:https://wiki.php.net/rfc/dnf_types
更多的RFC
還有更多討論中的提案,下面做一個簡單的介紹和連結。
討論中:新的CURL RUL API(增加curl類別和url類別)
#討論中:const聲明時使用枚舉屬性值
#討論中:PDO程序中特性的子類別(能夠提高對sqlite、pgsql的支援)
討論中:使iterator_*() 系列接受所有可迭代物件(目前只接受Traversables,但不接受array)
討論中:在枚舉中實作自動Stringable(但仍然不能自訂覆蓋)
討論中:短閉包(匿名函數想要使用外部變數必須使用use聲明,短閉包可以解決這樣的問題(,跟js的箭頭函數效果一樣))
提到的文章連結:
#PHP8.2的windows版本( https://windows .php.net/qa/ )
PHP8.2的docker 映像( https://hub.docker.com/_/php?tab=tags&page=1&name=8.2.0 )
PHP8.2的原始碼託管位址( https://github.com/php/php-src )
PHP8.2的Mac工具Homebrew 安裝( https://github.com/shivammathur/homebrew-php )
PHP8.2會有哪些新東西? ( https://phpreturn.com/index/a626a74a300dc5.html )
提案:false和null作為獨立類型( https://wiki.php.net/rfc/null -false-standalone-types )
對於(將false和null作為獨立類型)提案的開發者訪談( https://phpinternals.news/99 )
提案:將true作為獨立類型( https://wiki.php.net/rfc/true-type )
#提案:對is_callable的棄用通知( https://wiki.php. net/rfc/partially-supported-callables-expand-deprecation-notices )
#################################### #####提案:在沒居中實作自動Stringable( https://wiki.php.net/rfc/auto-implement_stringable_for_string_backed_enums )############# 提案:短閉包(https: //wiki.php.net/rfc/auto-capture-closure )############關於PHP更多合併說明可以查看:https://thephp.foundation/blog/2022/06 /30/php-core-roundup-3/#merged-prs-and-commits#########英文原文網址:https://thephp.foundation/blog/2022/06/30/php- core-roundup-3/######轉載網址:https://phpreturn.com/index/a62be479ae1e02.html######原文平台:PHP武器庫######版權聲明:本文由phpreturn.com(PHP武器庫官網)原創和首發,所有權利歸phpreturn(PHP武器庫)所有,本站允許任何形式的轉載/引用文章,但必須同時註明出處。 #########推薦學習:《###PHP影片教學###》###
以上是PHP8.2最新進展,即將進行新功能凍結!的詳細內容。更多資訊請關注PHP中文網其他相關文章!