波多野结衣 蜜桃视频,国产在线精品露脸ponn,a v麻豆成人,AV在线免费小电影

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:52010
  • 待審:67
  • 小程序:12
  • 文章:1106242
  • 會(huì)員:784

php 屬性是在 php 8.0 中引入的。該版本標(biāo)志著該語言的一個(gè)重要里程碑,帶來了一些新功能和改進(jìn),包括引入用于向代碼聲明添加元數(shù)據(jù)的屬性。

我第一次必須處理屬性是由于 inspector 的 php 庫中的一個(gè)問題。檢查 github。在深入研究解決方案之前,讓我們先概述一下屬性是什么以及如何在 php 代碼中使用它們。

屬性是一項(xiàng)強(qiáng)大的功能,允許您將元數(shù)據(jù)添加到類、方法或?qū)傩缘嚷暶髦小_@些元數(shù)據(jù)可以通過編程方式檢索,為更干凈、更有組織、更高效的代碼開辟了新的可能性。

記住,屬性在運(yùn)行時(shí)沒有效果。它們將在反射 api 中可用,使您的應(yīng)用程序能夠根據(jù)附加到類、方法或?qū)傩缘膶傩粤私饽胍\(yùn)行的內(nèi)容。

內(nèi)置屬性

php 附帶了幾個(gè)用于不同目的的內(nèi)置屬性。以下是一些值得注意的:

@已棄用

將函數(shù)或方法標(biāo)記為已棄用,表明應(yīng)避免使用它,因?yàn)樗赡軙?huì)在未來版本中被刪除。

#[deprecated("use newfunction() instead")]
function oldfunction() 
{
    // function implementation
}

登錄后復(fù)制

@覆蓋

確保子類中的方法旨在覆蓋父類中的方法。

class child extends parent {
    #[override]
    public function defaultmethod() 
    {
        // method implementation
    }
}

登錄后復(fù)制

如果 defaultmethod() 最終將在父類中更改其名稱,則這不再是重寫。在這種情況下,php 將發(fā)出警告,因?yàn)槲覀兠鞔_聲明我們希望進(jìn)行覆蓋并提醒我們有關(guān)未對(duì)齊的情況。

不管怎樣,一個(gè)好的ide應(yīng)該能讓我們不犯這樣的錯(cuò)誤。

@suppresswarnings

抑制特定代碼段的特定警告。

#[suppresswarnings("somewarning")]
function somefunction() 
{
    // function implementation
}

登錄后復(fù)制

創(chuàng)建自定義屬性類

現(xiàn)在,讓我們創(chuàng)建一個(gè)自定義屬性類。當(dāng)您想要將特定行為封裝在屬性中時(shí),這非常有用。

#[attribute]
class customattribute 
{
    public string $message;

    public function __construct(string $message) 
    {
        $this->message = $message;
    }
}

登錄后復(fù)制

然后您可以在各種元素上使用此自定義屬性:

class myclass 
{
    #[customattribute("this is a custom attribute")]
    public $myproperty;

    #[customattribute("another custom attribute")]
    public function mymethod() 
    {
        // method implementation
    }
}

登錄后復(fù)制

使用示例

讓我們探討一個(gè)實(shí)際的例子。假設(shè)您正在構(gòu)建一個(gè) web 應(yīng)用程序,并且您想要?jiǎng)?chuàng)建一個(gè)自定義屬性來定義字符串的長(zhǎng)度:

#[attribute(attribute::target_property)]
class maxlength 
{
    public int $maxlength;

    public function __construct(int $maxlength) 
    {
        $this->maxlength = $maxlength;
    }
}

登錄后復(fù)制

在上面的示例中,我們限制了僅將屬性應(yīng)用于類屬性的能力。現(xiàn)在我們可以在 user 類中使用它:

class user 
{
    #[maxlength(20, message: "username must be 20 characters or less")]
    public string $username;

    // other properties and methods
}

登錄后復(fù)制

前面提到,向?qū)傩蕴砑訉傩栽趫?zhí)行過程中沒有任何影響。但我們現(xiàn)在可以使用反射檢索這些信息,最終采取一些行動(dòng)。

php 框架的采用

最常用的 php 框架(如 symfony 和 laravel)已經(jīng)采用屬性來基本上取代“注釋”。在 symfony 5.2 或更高版本中,您可以聲明一個(gè)控制器并使用屬性將其連接到路由:

public class arrayable implements \arrayaccess
{
    …

    public function offsetexists($offset)
    {
        return isset($this->data[$offset]);
    }

    …
}

登錄后復(fù)制

自 php 8 起,arrayaccess 接口的定義更改為:

通過使用屬性,他們強(qiáng)制聲明偏移函數(shù)中參數(shù)的數(shù)據(jù)類型。使用 languageleveltypeaware 屬性,如果實(shí)現(xiàn)不提供參數(shù)的數(shù)據(jù)類型,則會(huì)觸發(fā)“棄用警告”。

但是在函數(shù)參數(shù)中聲明數(shù)據(jù)類型會(huì)破壞與不支持參數(shù)數(shù)據(jù)類型聲明的舊版本 php 的兼容性。

由于這只是對(duì)未來更改的警告,我們使用另一個(gè)內(nèi)置 php 屬性來解決該問題以抑制警告:

public class Arrayable implements \ArrayAccess
{
    …

    #[\ReturnTypeWillChange]
    public function offsetExists($offset)
    {
        return isset($this->data[$offset]);
    }

    …
}

登錄后復(fù)制

returntypewillchange 屬性只是告訴 php,我們了解該語言的未來變化,并且我們已經(jīng)計(jì)劃了必要的更新。

特別是對(duì)于這一更改,它們肯定會(huì)在 php 9 中實(shí)現(xiàn)。

請(qǐng)記住明智地使用屬性,保持代碼庫干凈且有詳細(xì)記錄。這在 saas 產(chǎn)品開發(fā)中尤其重要,因?yàn)榭蓴U(kuò)展性、可維護(hù)性和效率至關(guān)重要。

督察新人?免費(fèi)監(jiān)控您的應(yīng)用程序

inspector 是一款專為軟件開發(fā)人員設(shè)計(jì)的代碼執(zhí)行監(jiān)控工具。您不需要在服務(wù)器級(jí)別安裝任何東西,只需安裝 composer 包 就可以開始了。

與其他復(fù)雜的一體化平臺(tái)不同,inspector 超級(jí)簡(jiǎn)單,并且對(duì) php 友好。您可以嘗試我們的 laravel 或 symfony 包。

如果您正在尋找有效的自動(dòng)化、深入的見解以及將警報(bào)和通知轉(zhuǎn)發(fā)到消息傳遞環(huán)境的能力,請(qǐng)免費(fèi)嘗試 inspector。注冊(cè)您的帳戶。

或在網(wǎng)站上了解更多:https://inspector.dev

分享到:
標(biāo)簽:創(chuàng)建 如何使用 屬性 提示 自定義
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 52010

    網(wǎng)站

  • 12

    小程序

  • 1106242

    文章

  • 784

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定