标量類型聲明 有兩種模式: 強制 (預設) 和 嚴格模式。 現在可以使用下列類型參數(無論用強制模式還是嚴格模式): 字元串(string), 整數 (int), 浮點數 (float), 以及布爾值 (bool)。它們擴充了PHP5中引入的其他類型:類名,接口,數組和 回調類型
以上例程會輸出:
要使用嚴格模式,一個 declare 聲明指令必須放在檔案的頂部。這意味着嚴格聲明标量是基于檔案可配的。 這個指令不僅影響參數的類型聲明,也影響到函數的傳回值聲明(參見 傳回值類型聲明, 内置的PHP函數以及擴充中加載的PHP函數)
完整的标量類型聲明文檔和示例參見類型聲明章節。
PHP 7 增加了對傳回類型聲明的支援。 類似于參數類型聲明,傳回類型聲明指明了函數傳回值的類型。可用的類型與參數聲明中可用的類型相同。
完整的标量類型聲明文檔和示例可參見 傳回值類型聲明.
由于日常使用中存在大量同時使用三元表達式和 isset()的情況, 我們添加了null合并運算符 (??) 這個文法糖。如果變量存在且值不為NULL, 它就會傳回自身的值,否則傳回它的第二個操作數。
太空梭操作符用于比較兩個表達式。當a大于、等于或小于b時它分别傳回-1、0或1。 比較的原則是沿用 PHP 的正常比較規則進行的。
Array 類型的常量現在可以通過 definedefine() 來定義。在 PHP5.6 中僅能通過 const 定義。
現在支援通過new class 來執行個體化一個匿名類,這可以用來替代一些“用後即焚”的完整類定義
詳細文檔可以參考 匿名類.
這接受一個以16進制形式的 Unicode codepoint,并列印出一個雙引号或heredoc包圍的 UTF-8 編碼格式的字元串。 可以接受任何有效的 codepoint,并且開頭的 0 是可以省略的。
Closure::call() 現在有着更好的性能,簡短幹練的暫時綁定一個方法到對象上閉包并調用它。
這個特性旨在提供更安全的方式解包不可靠的資料。它通過白名單的方式來防止潛在的代碼注入。
新增加的 IntlChar 類旨在暴露出更多的 ICU 功能。這個類自身定義了許多靜态方法用于操作多字元集的 unicode 字元。
若要使用此類,請先安裝Intl擴充
預期是向後兼用并增強之前的 assert() 的方法。 它使得在生産環境中啟用斷言為零成本,并且提供當斷言失敗時抛出特定異常的能力。
老版本的API出于相容目的将繼續被維護,assert()現在是一個語言結構,它允許第一個參數是一個表達式,而不僅僅是一個待計算的 string或一個待測試的boolean。
關于這個特性的完整說明,包括如何在開發和生産環境中配置它,可以在assert()的 expectations section章節找到。
從同一 namespace 導入的類、函數和常量現在可以通過單個 use 語句 一次性導入了。
此功能是建立在引入PHP5.5發電機的功能。它能夠為要在發電機内使用,以便為最終的表達式傳回return語句(傳回引用是不允許的)。該值可以使用新的發電機:: getReturn()方法,該方法隻能使用一次發電機已完成收益值是牽強。
能夠從發電機明确地傳回一個最終值是有一個友善的能力。這是因為它使供到由發電機被傳回(從或許某種形式的協程計算),可以通過執行發生器客戶代碼進行具體處理的最終值。這比迫使用戶端代碼首先檢查最終值是否已經産生了,然後如果是這樣,專門負責處理該值簡單。
發電機現在可以委托給另一發生器,自動位移對象或數組,而無需使用來自結構屈服編寫樣闆在最外面的發電機。
新intdiv()函數執行的操作數的整數除法并傳回。
在session_start()現在接受的選項,覆寫在php.ini中通常設定會話配置指令的數組。
這些選項也得到了擴充,以支援session.lazy_write,這是在預設情況下并導緻PHP隻覆寫任何會話檔案,如果會話資料已經改變,read_and_close,這是一個隻能傳遞給在session_start()的選項,以表明會話資料應該讀,然後會議應立即關閉不變。
例如,要session.cache_limiter設定為私有,并立即閱讀後關閉會話:
新preg_replace_callback_array()函數使代碼編寫更幹淨使用preg_replace_callback()函數時。在此之前PHP7,這需要每個正規表達式執行回調需要回調函數被污染,有很多分支。
現在,回調可以注冊使用一個關聯數組,其中最關鍵的是一個正規表達式的值是一個回調的每個正規表達式。
兩個新的功能已被添加到生成加密安全整數和字元串的跨平台的方式:random_bytes()和random_int()。
此前,清單()是不能保證與實施了ArrayAccess對象的正常運作。這已得到修複。