新版本的PHP將于12月3日正式發(fā)布。除了大量的bug修復(fù)和小的改進(jìn),全球的開(kāi)發(fā)人員也將獲得一些新的有趣特性。名單雖然還沒(méi)有結(jié)束,但是,我們可以查看我們期待的新特性。我將準(zhǔn)備一系列短篇文章,每一篇都將重點(diǎn)介紹,讓我們開(kāi)始吧!
在第一篇文章中,我向大家介紹構(gòu)造函數(shù)屬性提升。PHP8 將引入一個(gè)在諸如 Hack、Korlin 或 TypesScript 等語(yǔ)言中很有名的概念。它是如何工作的呢,在什么樣的情況下可以使用?讓我們看看下面的例子:
非常簡(jiǎn)單的數(shù)值對(duì)象,不是嗎?我們幾乎每天都要與這種類(lèi)型打交道。每當(dāng)我們需要把數(shù)值從構(gòu)造函數(shù)的參數(shù)傳遞給類(lèi)中屬性時(shí),都需要書(shū)寫(xiě)如圖所示的整塊模板代碼,確實(shí)是令人感到些許厭煩。 構(gòu)造函數(shù)屬性提升功能將會(huì)為我們解決這個(gè)問(wèn)題, 并且能夠讓類(lèi)似的代碼書(shū)寫(xiě)更加簡(jiǎn)短,簡(jiǎn)單。 讓我們來(lái)看一下該如何使用:
我們可以簡(jiǎn)單的在構(gòu)造函數(shù)參數(shù)的類(lèi)型聲明前增加一個(gè)訪問(wèn)修飾符, 之后該參數(shù)將自動(dòng)分配給具有相同名稱(chēng)的類(lèi)屬性。 我們可以理解為,構(gòu)造函數(shù)中,具有訪問(wèn)修飾符的參數(shù)將會(huì)得到提升,成為同名稱(chēng)的類(lèi)屬性。
你可以混合使用屬性提升和常規(guī)的屬性聲明。如下面例子所示:
上述示例代碼等效于下面例子的代碼:
構(gòu)造函數(shù)屬性提升(Constructor Property Promotion)僅可以用在常規(guī)類(lèi)和 traits
引用類(lèi)里面,它不可以被用在接口和抽象類(lèi)里面(盡管我們可以在這些類(lèi)里面聲明構(gòu)造函數(shù))。
如果你的代碼使用了大量的 值對(duì)象(VO) 或者 數(shù)據(jù)傳輸對(duì)象(DTO),構(gòu)造函數(shù)屬性提升(Constructor Property Promotion)將大大簡(jiǎn)化和縮短你的代碼。類(lèi)似的功能需求曾被多次討論,但只有 Nikita Popov 編寫(xiě)的實(shí)現(xiàn)版本獲得了足夠多的好評(píng),它并將被合并到新的 PHP 版本中。您可以在此 RFC 中閱讀有關(guān)它的更多信息。
在“深入 PHP8”系列的下一部分,我們將討論聯(lián)合類(lèi)型的實(shí)現(xiàn)。敬請(qǐng)期待!
這篇文章最初發(fā)表在我司的博客上。你可以點(diǎn)擊這里查看。
原文地址:https://dev.to/avantar/pe-into-php8-pa...
譯文地址:https://learnku.com/laravel/t/47600
名稱(chēng)欄目:PHP8新特性之構(gòu)造函數(shù)屬性大加強(qiáng)!
文章網(wǎng)址:http://chinadenli.net/article32/cjpdsc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)公司、App設(shè)計(jì)、網(wǎng)站排名、關(guān)鍵詞優(yōu)化、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)