php7 str split,PHP7.4新特性预览
雖然PHP 7.4還未發布,但是RFC已經確定了該版本的一些新性。這個版本的改動有點多,有很多實用性功能。發布日期可能在2019年12月左右,但尚待確認。讓我們看看有那些地方的改動。
短閉包 RFC
屬性類型定義 RFC
Null Coalescing Assignment Operator RFC
自定義對象序列化 RFC
棄用左關聯三元運算符 RFC
預加載 RFC
外部函數接口 RFC
Reflection for references RFC
mb_str_split RFC
ext-hash 始終開啟RFC
?短閉包
引用更簡單的閉包寫法,增加了類似Lambda的表達式的寫法。
// 7.3之前
array_map(function (User $user) {
return $user->id;
}, $users)
// 現在
array_map(fn(User $user) => $user->id, $users)
在原來的基礎加上fn關鍵字。采用了類型javascript =>寫法。
?屬性類型定義
可以指定類屬性的類型定義,更加的明確類型。
class A
{
public string $name;
public Foo $foo;
protected ClassName $classType;
private ?ClassName $nullableClassType;
// Types are also legal on static properties
public static iterable $staticProp;
}
這項特性增加,在寫大型工程的時候,不必為變量類型返回值來回查看源碼,這樣對IDE的支持也更好。
?Null Coalescing Assignment Operator
更短的??操作符寫法。
// 7.4之前
$data['date'] = $data['date'] ?? new DateTime();
// 現在
$data['date'] ??= new DateTime();
?棄用左關聯三元運算符
與大多數其他語言不同,PHP中的三元運算符是左關聯的而不是右關聯的。對于在不同語言之間切換的程序員來說,左關聯行為通常沒有用,并且令人困惑。此RFC建議棄用并刪除三元運算符的左關聯性,并且需要顯式使用括號。
echo 1 ? 2 : 3 ? 4 : 5; // deprecated 7.4, 7.3 之前這是ok的。
echo (1 ? 2 : 3) ? 4 : 5; // ok
?自定義對象序列化
添加兩個新的序列化魔術方法__serialize,__unserialize主要來解決__wakeup和Serializable帶來一些問題。可以通過https://wiki.php.net/rfc/custom_object_serialization來查看對比。
?預加載
預加載是PHP這期核心的變更,可以帶來一些重大的性能改進。
簡而言之,如果您使用的所有PHP Web框架,則必須在每次請求時加載和重新編譯其文件。預加載允許服務器在啟動時在內存中加載PHP文件,并使它們永久可用于所有后續請求。
性能提升當然需要付出代價,如果預加載文件的來源發生變化,則必須重新啟動服務器。
?外部函數接口
外部函數接口,簡稱FFI,此API允許在純PHP中加載共享庫(.DLL或.so),調用C函數和訪問C數據結構,而無需深入了解Zend擴展API,也無需學習第三種“中間”語言。對于PHP,FFI開辟了一種在純PHP中編寫PHP擴展和綁定到C庫的方法。。 這是一個復雜的主題。您仍然需要C知識才能正確使用此功能。大家可以閱讀該項目來了解https://github.com/dstogov/php-ffi。
?Reflection for references
像Symfony的varCloner轉儲程序,這樣的庫很大程度上依賴于反射API來可靠地轉儲變量。以前,沒有對引用的適當反射支持,導致這些庫依賴hack來檢測引用。 PHP 7.4添加了ReflectionReference類來解決這個問題。
?mb_str_split
添加了多字節的字符串分割函數和str_split一樣。
print_r(mb_str_split("你好中國", 2));
Array
(
[0] => 你好
[1] => 中國
)
?ext-hash 默認開啟
哈希擴展(ext / hash)始終可用,類似于date,spl和pcre擴展。
以上就是PHP 7.4新特性和函數,如果你需要查看所有的更新,你可以通過官方公開的日志查看。這個版本對性能提升是非常明顯的特別預加載的功能。讓我們拭目以待吧。官方預計發布日期可能在2019年12月左右。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的php7 str split,PHP7.4新特性预览的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: flask bootstrap ajax
- 下一篇: php send helo/ehlo f