电竞比分网-中国电竞赛事及体育赛事平台

分享

PHP7.4新特性

 硬核項目經(jīng)理 2021-05-31

PHP7.4新特性

PHP7.4版本已經(jīng)正式發(fā)布了,做為PHP7版本的最后一次大更新,這一次又為我們帶來了什么新特性呢?

屬性類型

PHP7.4中的類屬性終于可以為屬性指定變量類型了。一切都是為了JIT鋪墊。靜態(tài)固定類型的引入將讓PHP更加的工程化。

1class User {
2    public int $id;
3    public string $name;
4}

箭頭函數(shù)

好吧,上一個是向Java、C++看齊,這一個就是把JavaScript的又一強(qiáng)大特性搬了過來。箭頭函數(shù)不陌生吧,配合匿名函數(shù)簡直不要太香。

1$factor = 10;
2$nums = array_map(fn($n) => $n * $factor, [1234]);

空值合并賦值運(yùn)算操作符

PHP7的??操作符這次也帶來了更新,這回直接可以進(jìn)行合并賦值操作了。多行代碼或者原來用??寫得很長的代碼這回可以寫得更少了。

1$array['key'] ??= computeDefault();
2// is roughly equivalent to
3if (!isset($array['key'])) {
4    $array['key'] = computeDefault();
5}

數(shù)組元素解包

…操作符可以用在數(shù)組元素中了。

1$parts = ['apple''pear'];
2$fruits = ['banana''orange', ...$parts, 'watermelon'];
3// ['banana', 'orange', 'apple', 'pear', 'watermelon'];

數(shù)字文本可包含下劃線

16.674_083e-11// float
2299_792_458;   // decimal
30xCAFE_F00D;   // hexadecimal
40b0101_1111;   // binary

strip_tags()可以使用數(shù)組定義保留的標(biāo)簽

1strip_tags($str, ['a''p']);
2// 原來要這么寫
3strip_tags($str, '<a><p>');

新增自定義對象序列化魔術(shù)方法

原來的__sleep()和__weakup()說實話真的太不形象了。睡著和起床了來表示序列化和反序列操作。這個…

不過總算是給掰回來了。PHP7.4新定義了__serialize()和__unserialize()方法。

1// Returns array containing all the necessary state of the object.
2public function __serialize(): array;
3
4// Restores the object state from the given data array.
5public function __unserialize(array $data): void;

其他

  • 弱引用:允許程序員保留對某個對象的引用,該對象不會阻止該對象被銷毀。

  • __toString中出現(xiàn)的錯誤從可恢復(fù)的錯誤轉(zhuǎn)換為錯誤異常,可被try/catch

  • 添加mb_str_split()函數(shù)

參考文檔:
https://www./manual/zh/migration74.new-features.php

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多