PHP7新特性 整理製作

1.類型的聲明。
3.新增操作符“<=>”
4.新增操作符“??”
5.define() 定義常量數組
7.匿名函數
10.命名空間引用優化
// PHP7以前語法的寫法
use FooLibrary\Bar\Baz\ClassA;
use FooLibrary\Bar\Baz\ClassB;
// PHP7新語法寫法
use FooLibrary\Bar\Baz{ ClassA, ClassB};
13. PHP7 錯誤處理

PHP7 改變了大多數錯誤的報告方式.不同於PHP5的傳統錯誤報告機制,現在大多數錯誤被作爲Error異常拋出.

這種Error異常可以像普通異常一樣被try / catch塊所捕獲. 如果沒有匹配的try / catch塊,則調用異常處理函數(由 set_exception_handler() 註冊)進行處理.

如果尚未註冊異常處理函數,則按照傳統方式處理:被報告爲一個致命錯誤(Fatal Error).

Error類並不是從Exception類擴展出來的,所以用catch (Exception $e) { … } 這樣的代碼是捕獲不到Error的.你可以用 catch (Error $e) { … } 這樣的代碼,

或者通過註冊異常處理函數( set_exception_handler())來捕獲Error.
PHP新功能總結
改進的性能 - 將PHPNG代碼合併到PHP7中,速度是PHP 5的兩倍。
降低內存消耗 - 優化的PHP 7使用較少的資源。
標量類型聲明 - 現在可以強制執行參數和返回類型。
一致的64位支持 - 對64位體系結構機器的一致支持。
改進了異常層次 - 異常層次得到了改進
許多致命的錯誤轉換爲例外 - 例外範圍增加,涵蓋許多致命的錯誤轉換爲例外。
安全隨機數發生器 - 增加新的安全隨機數發生器API。
已棄用的SAPI和擴展已刪除 - 各種舊的和不受支持的SAPI和擴展從最新版本中刪除。
空合併運算符(?) - 添加了新的空合併運算符。
返回和標量類型聲明 - 支持所添加的返回類型和參數類型。
匿名類 - 支持匿名添加。
零成本斷言 - 支持零成本斷言增加。
標量類型聲明
在PHP 7中,引入了一個新的特性,即標量類型聲明。標量類型聲明有兩個選項

強制 - 強制是默認模式,不需要指定。
嚴格 - 嚴格的模式已經明確暗示。

2.zend_string存儲hash值,array查詢不再需要重複計算hash

4.zend_parse_parameters改爲宏實現,性能提升15%。

5.新增加4種opcode,call_user_function(),is_int(),is_string(),is_array(),strlen(),defined() 4個函數變爲php opcode指令,速度更快。

6.其他更多性能優化,如基礎類型 float , int , bool等改成直接進行值拷貝。排序算法改進了,PCER with JIT , execute_data和opline使用全局寄存器,使用gdb4.8的PGO功能
3.hashtable桶內直接存放數據,減少了內存申請次數,順便也提升了cache命中率和訪問速度。因爲指針不是連續的是分佈在不同的內存頁上,如果讀取第一個或者第三個桶,它們的數據可能會在兩個頁上。
https://www.cnblogs.com/songgj/p/10398076.html
【php】php7新特性及其優化原理
閉包( Closure)增加了一個 call 方法;

生成器(或者叫迭代器更合適)可以有一個最終返回值(return),也可以通過 yield from 的新語法進入一個另外一個生成器中(生成器委託)。

生成器的兩個新特性(return 和 yield from)可以組合

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章