PHP8新特性之構(gòu)造函數(shù)屬性大加強(qiáng)!

發(fā)布時(shí)間:2024-03-23
新版本的php將于12月3日正式發(fā)布。除了大量的bug修復(fù)和小的改進(jìn),全球的開發(fā)人員也將獲得一些新的有趣特性。名單雖然還沒有結(jié)束,但是,我們可以查看我們期待的新特性。我將準(zhǔn)備一系列短篇文章,每一篇都將重點(diǎn)介紹,讓我們開始吧!
在第一篇文章中,我向大家介紹構(gòu)造函數(shù)屬性提升。php8 將引入一個(gè)在諸如 hack、korlin 或 typesscript 等語(yǔ)言中很有名的概念。它是如何工作的呢,在什么樣的情況下可以使用?讓我們看看下面的例子:
非常簡(jiǎn)單的數(shù)值對(duì)象,不是嗎?我們幾乎每天都要與這種類型打交道。每當(dāng)我們需要把數(shù)值從構(gòu)造函數(shù)的參數(shù)傳遞給類中屬性時(shí),都需要書寫如圖所示的整塊模板代碼,確實(shí)是令人感到些許厭煩。 構(gòu)造函數(shù)屬性提升功能將會(huì)為我們解決這個(gè)問題, 并且能夠讓類似的代碼書寫更加簡(jiǎn)短,簡(jiǎn)單。 讓我們來看一下該如何使用:
我們可以簡(jiǎn)單的在構(gòu)造函數(shù)參數(shù)的類型聲明前增加一個(gè)訪問修飾符, 之后該參數(shù)將自動(dòng)分配給具有相同名稱的類屬性。 我們可以理解為,構(gòu)造函數(shù)中,具有訪問修飾符的參數(shù)將會(huì)得到提升,成為同名稱的類屬性。
你可以混合使用屬性提升和常規(guī)的屬性聲明。如下面例子所示:
上述示例代碼等效于下面例子的代碼:
構(gòu)造函數(shù)屬性提升(constructor property promotion)僅可以用在常規(guī)類和 traits 引用類里面,它不可以被用在接口和抽象類里面(盡管我們可以在這些類里面聲明構(gòu)造函數(shù))。
如果你的代碼使用了大量的 值對(duì)象(vo) 或者 數(shù)據(jù)傳輸對(duì)象(dto),構(gòu)造函數(shù)屬性提升(constructor property promotion)將大大簡(jiǎn)化和縮短你的代碼。類似的功能需求曾被多次討論,但只有 nikita popov 編寫的實(shí)現(xiàn)版本獲得了足夠多的好評(píng),它并將被合并到新的 php 版本中。您可以在此 rfc 中閱讀有關(guān)它的更多信息。
在“深入 php8”系列的下一部分,我們將討論聯(lián)合類型的實(shí)現(xiàn)。敬請(qǐng)期待!
這篇文章最初發(fā)表在我司的博客上。你可以點(diǎn)擊這里查看。
原文地址:https://dev.to/avantar/pe-into-php8-pa…
譯文地址:https://learnku.com/laravel/t/47600
上一個(gè):脫水敏感類型種子的貯藏方法分析
下一個(gè):在病癥治療階段,西他沙星能夠起到更好的調(diào)節(jié)作用

大型離心泵的結(jié)構(gòu)與運(yùn)行
什么是撫養(yǎng)權(quán)變更條件
超聲波硬度計(jì)在熱處理行業(yè)中的應(yīng)用
水產(chǎn)養(yǎng)殖水質(zhì)監(jiān)測(cè)水質(zhì)指標(biāo)常用的方法
菲尼克斯開關(guān)電源QUINT4-PS/3AC/24DC/20參數(shù)
中走絲線切割切割面不光滑
水泥稠度儀圓模使用方法
rosekrieger(專業(yè)工控配件供應(yīng)商為您提供高品質(zhì)的支架安裝座)
熱源廠系列之多能互補(bǔ)調(diào)控系統(tǒng)
小米手機(jī)哪一款性價(jià)比比較高(小米手機(jī)哪款性價(jià)比更高)
十八禁 网站在线观看免费视频_2020av天堂网_一 级 黄 色 片免费网站_绝顶高潮合集Videos