傑愛得資訊 jumpAD
0800-000-964

PHP 8.1加入列舉、唯讀屬性等新語言功能

取自:iThome
您好,我們是傑愛得資訊,歡迎來到我們的媒體聯播網
文/李建興 | 2021-11-30發表

PHP 8.1加入列舉、唯讀屬性等新語言功能



老牌腳本語言PHP推出最新的8.1版本,在眾多新興程式語言競爭之下,持續增加新功能來維持競爭力,在PHP 8.1中,加入列舉(Enumerations)、唯讀屬性(Readonly Properties),同時還有一級可呼叫語法(First-class Callable Syntax)等新功能,提升開發者的程式碼編寫體驗。

PHP 8.1這個重大更新中,受開發者期待的新功能之一便是列舉,列舉讓開發者自定義型別,限制有限數值的可能值,官方提到,該功能在定義特定領域模型時特別有用,因為能夠讓無效狀態無法被表示。

列舉功能普遍在各種程式語言出現,而具有的特性也有所差異,在PHP,列舉是一個特殊的物件,列舉本身是一個類別,並且在可能的情況,都屬於該類別的單一實體物件,這代表Enum case是有效的物件,列舉可在任何可能使用物件的地方使用,包括型別檢查。而列舉最常被使用的例子,便是內建的布林型別,這是一個列舉型別,具有合法的值true和false。

下方繼續閱讀
曝光6,789/日 成本100/月
下文請點廣告解鎖
下文請點廣告解鎖
投放Google多媒體聯播網廣告(點此)arrow_downward,包含轉換代碼安裝

※ 如果看到投資類型廣告,請再三評估風險!

繼續閱讀keyboard_double_arrow_down
在這個PHP版本,加入了一個唯讀(Readonly)屬性修飾符,可以避免在初始化後,屬性遭到修改,官方提到,數值物件通常是不可變的,屬性在建構函式初始化後就不應該修改,但是PHP過去並無法強制執行此約束,最接近的選擇,是將屬性宣告成私有屬性,並且以公共存取子(Getter)對外公開。

雖然這種替代做法,縮小了可能對單個類別宣告進行修改的範圍,但實際並沒有使屬性成為唯讀,而且還需要使用存取子寫法,更顯得不方便,而現在PHP 8.1對唯讀屬性提供第一級支援,將讓開發者能夠直接公開唯讀屬性,而且不用擔心類別不可變屬性會被外部修改破壞。

新版PHP中一級可呼叫語法,使得開發者能夠取得所有函式的參照,而Never回傳型別,則是當函式或是方法宣告為Never型別時,就不會回傳值,不過仍會拋出異常,並且透過呼叫die()、exit()、trigger_error() 等來結束腳本執行。

另外,PHP 8.1以Fibers來實現輕量級協作並行,Fibers可以創建像Generator般,能夠被暫停或是恢復執行的程式碼區塊,但是卻可從堆疊中任何位置進行,官方提到,Fibers並不會自動提供並行性,仍需要一個事件循環,只不過能夠允許阻塞和非阻塞實作共享相同的API。

PHP基金會在成立幾天後,隨即發布了PHP 8.1,該基金會組成的目的,是要保管來自貢獻者的資金,並確保PHP能夠繼續發展,目前RFC流程並不會改變,語言發展決策權也保留給php.internals社群。
點此投放Google多媒體聯播網廣告
※ 如果看到投資類型廣告,請再三評估風險!
post_add 資料來源:iThome

傑愛得資訊領先業界

國際認證獎項報導
我們是業界少數同時具備數位行銷、系統開發、雲端服務的數位整合專業團隊
─ 2021.05

【2024年亞太區年度AI人工智慧廣告科技公司】封面人物
榮獲 MarTech Outlook 美國期刊評選

【2023年亞太區20大傑出AI人工智慧解決方案服務商】
榮獲 APAC CIO Outlook 美國矽谷期刊評選

【2024年值得關注的30大領先企業】
榮獲 CIO Bulletin 美國期刊評選

取得AI廣告追蹤技術國家發明專利

ISO/IEC 27001:2022 Lead Auditor 資安管理系統主導稽核員

bookmark_star 查看資歷
傑愛得資訊 顧問諮詢報價
公司/姓名
頭銜/稱謂
e-mail
LINE id
公司資本額
大約預算
聯繫語言
網路行銷
Google Ads
最高成效廣告
智慧廣告
探索廣告
APP 宣傳廣告
交給顧問評估規畫
Yahoo Ads
交給顧問評估規畫
Microsoft Ads
關鍵字廣告(原Yahoo 關鍵字)
網路系統
雲服務專案
諮詢/備註
※本公司與全城通律法律顧問合作,以上服務皆遵守法律規範。
jumpAD 吉傳媒 PFP Next Erene Design 懿坊飾品 三分糖手作中品牌故事
🤫 悄悄說: