PHP7使用新的zend engine3.0將應用程序性能提升近兩倍,內存消耗比PHP5.6高出50%,它容許服務更多的併發用戶,而不須要額外的硬件,PHP7是考慮到今天的工做負載而設計和重構的php
新功能數組
一、增長標量類型聲明,有兩個選項安全
強制-強制是默認模式,不須要指定併發
嚴格-嚴格的模式已經明確暗示dom
強制模式:<?php 函數
function sum(int ...$ints){性能
return array_sum($ints);設計
}code
print(sum(2,'3',4.1));對象
?>
嚴格模式:<?php
declare(strict_type = 1);
function sum(int ...$ints){
return array_sum($ints);
}
print(sum(2,'3',4.1));
?>
二、空合併運算符??
<?php
//空合併運算符,它用來替代與isset()函數結合的三元操做。該空若是它存在,而不是空合併運算符返回第一個操做數,不然返回第二個操做數
$user_name = $_GET['username'] ?? 'not passed';
三、飛船運算符
//它用來比較兩個表達式,當第一個表達式分別小於等於或者大於第二個表達式時,它返回-1,0,1
print( 1<=>1);
四、常量數組
用define()函數定義數組常量,在PHP5中只能用const關鍵字來定義她們
五、過濾unserialize
PHP7引入了過濾的unserialize()函數,以便在對不可信數據上的對象進行反序列化提供更好的安全性。它能夠防止可能的代碼注入,並使開發人員可以對能夠反序列化的類進行白名單
六、IntIChar
在PHP7中,增長來一個新的IntlChar類,它試圖揭示額外的ICU功能,這個類定義類一些靜態方法和常量,能夠用來處理unicode字符,在使用這個課程以前,須要安裝intl擴展
七、csprng
在PHP7中,引入類兩個新的函數來以跨平臺的方式生成密碼安全的整理和字符串
random_bytes()-生成密碼安全的僞隨機字節
random_int() -生成密碼安全的僞隨機整數
八、使用聲明
從PHP7開始,能夠使用單個use語句從相同的命名空間導入類,函數和常量,而不是使用多個use語句
//befor PHP7
use com\crm\classA;
use com\crm\classB;
//PHP 7
use com\crm\{classA,classB}
九、PHP7引入了一個新的函數intdiv(),它對它的操做數進行整數除法,並將除法運算返回int
十、
從PHP 7開始,錯誤處理和報告已經改變。而不是經過PHP 5使用的傳統錯誤報告機制來報告錯誤,如今大多數錯誤都是經過拋出錯誤異常來處理的。與異常相似,這些錯誤異常會一直冒泡,直到它們到達第一個匹配的catch塊。若是沒有匹配的塊,則使用set_exception_handler()安裝的默認異常處理程序將被調用。若是沒有默認的異常處理程序,那麼異常將被轉換爲致命錯誤,並將像傳統的錯誤同樣處理。
因爲錯誤層次結構不是從Exception擴展的,因此使用catch(Exception $ e){...}塊來處理PHP 5中未捕獲的異常的代碼將不會處理這樣的錯誤。catch(Error $ e){...}塊或set_exception_handler()處理程序是處理致命錯誤所必需的。