综合,久久超,亚洲中文字幕无码一区二区三区,亚洲一,二,三区在线观看,亚洲精品成a人在线观看,亚洲一区二区三区偷拍女厕

長沙網(wǎng)站建設(shè):PHP 7.4中的新功能

善微科技 2019 02月16日 發(fā)布

PHP 7.4可能會在2019年12月的某個地方發(fā)布。此頁面將同時收到定期更新。最后更新時間是2019年1月14日


預(yù)加載rfc

預(yù)加載是PHP核心的一個驚人的補充,可以帶來一些重大的性能改進。


簡而言之:如果您今天使用的是框架,則必須在每次請求時加載和重新編譯其文件。預(yù)加載允許服務(wù)器在啟動時在內(nèi)存中加載PHP文件,并使它們永久可用于所有后續(xù)請求。


性能提升當(dāng)然需要付出代價:如果預(yù)加載文件的來源發(fā)生變化,則必須重新啟動服務(wù)器。


輸入屬性rfc

類變量可以是類型提示:


class A

{

    public string $name;

    

    public Foo $foo;

}

更新07-01:截至目前,已合并類型屬性,因此已確認PHP 7.4。


改進的類型方差rfc

我過去曾寫過PHP的類型系統(tǒng),所以很高興看到一些改進實際上是在PHP的核心。


類型差異是一個值得自己的博客文章的主題; 簡而言之:你將能夠使用協(xié)變返回類型......


class ParentType {}

class ChildType extends ParentType {}


class A

{

    public function covariantReturnTypes(): ParentType

    { /* … */ }

}


class B extends A

{

    public function covariantReturnTypes(): ChildType

    { /* … */ }

}

......和逆變論據(jù)。


class A

{

    public function contraVariantArguments(ChildType $type)

    { /* … */ }

}


class B extends A

{

    public function contraVariantArguments(ParentType $type)

    { /* … */ }

}

更新14-01:RFC目前處于投票階段,但看起來它會毫無問題地通過。



 

外部函數(shù)接口rfc

外部函數(shù)接口,簡稱FFI,允許從用戶區(qū)調(diào)用C代碼。這意味著PHP擴展可以用純PHP編寫。


應(yīng)該指出,這是一個復(fù)雜的主題。您仍然需要C知識才能正確使用此功能。


空融合賦值運算符rfc

而不是這樣做:


$data['date'] = $data['date'] ?? new DateTime();

你可以這樣做:


$data['date'] ??= new DateTime();

更新22-01:此功能現(xiàn)在在PHP 7.4中合并。


反思參考rfc

像Symfony的var轉(zhuǎn)儲程序這樣的庫很大程度上依賴于反射API來可靠地轉(zhuǎn)儲變量。以前,沒有對引用的適當(dāng)反射支持,導(dǎo)致這些庫依賴hack來檢測引用。


PHP 7.4添加了ReflectionReference解決此問題的類。


更新02-14:RFC已通過,PHP 7.4已確認更改。


mb_str_split添加了RFC

此函數(shù)提供與str_split多字節(jié)字符串相同的功能。


ext-hash始終啟用rfc

正如標(biāo)題所說,此擴展現(xiàn)在可在所有PHP安裝中永久使用。


PEAR默認情況下未啟用EXTERNALS

由于PEAR不再維護,核心團隊決定使用PHP 7.4刪除其默認安裝。


密碼哈希注冊表RFC

對如何使用散列庫進行內(nèi)部更改,以便用戶可以更輕松地使用它們。


棄用ext/wwdx RFC

此數(shù)據(jù)交換格式從未標(biāo)準(zhǔn)化,現(xiàn)在不推薦使用其擴展名。


向后不兼容的更改升級

升級PHP版本時,您應(yīng)該始終查看完整的UPGRADING文檔。


以下是一些突出顯示的向后不兼容的更改:


parent::在沒有父級的類中引用將生成編譯時錯誤而不是運行時錯誤。

調(diào)用var_dump一個DateTime或DateTimeImmutable實例將不再保留對象的可訪問屬性后面。

openssl_random_pseudo_bytes 將在錯誤情況下拋出異常。

嘗試序列化一個PDO或PDOStatement實例將生成一個Exception而不是一個PDOException。

呼叫g(shù)et_object_vars()上的ArrayObject實例將返回的屬性ArrayObject本身,而不是包裝的陣列或?qū)ο蟮闹?。請注意?array)強制轉(zhuǎn)換不受影響。


如沒特殊注明,文章均為善微網(wǎng)絡(luò)原創(chuàng),轉(zhuǎn)載請注明來自http://www.dataonline.cn/news/468.html