1. 程式人生 > >PHP新特性(三):效能優化

PHP新特性(三):效能優化

1)、為 unserialize() 提供過濾的特性:可以防止非法資料進行程式碼注入,提供了更安全的反序列化資料。

【注】所有php裡面的值都可以使用函式serialize()來返回一個包含位元組流的字串來表示。unserialize()函式能夠重新把字串變回php原來的值=>序列化;

因為mysql沒法存陣列型別的資料,序列化之後就轉變成了字元全就可以存進去了。

unserialize() 對單一的已序列化的變數進行操作,將其轉換回 PHP 的值

2)、編碼方面的特性

php7在國際化與字元編碼支援模組中通過 intl 擴充套件來支援國際化 (i18n) 和本地化 (l10n) 。此擴充套件僅僅是對 ICU 庫的基礎包裝,並提供了和 ICU 庫類似的方法和特性。

PHP 7 通過新的 IntlChar 類暴露出 ICU 中的 Unicode 字元特性。這個類自身定義了許多靜態方法用於操作多字符集的 unicode 字元

3)、引入幾個 CSPRNG(偽隨機數產生器) 函式

PHP 7 通過引入幾個 CSPRNG(偽隨機數產生器) 函式提供一種簡單的機制來生成密碼學上強壯的隨機數。

random_bytes() - 加密生存被保護的偽隨機字串。

random_int() - 加密生存被保護的偽隨機整數。

4)、異常處理

PHP程式出錯後過去zend引擎會發生致命錯誤並終止程式執行,PHP7可以使用try/catch捕獲錯誤。

5)、session

php7 以前,我們使用 session 前都是要先代用 session_strat() 函式來初始化的,但這個函式是沒有引數可以傳的,session 的配置都在 php.ini 檔案中。

在 php7 後 session_start() 可以接受一個 array 作為引數, 用來覆蓋 php.ini 檔案中設定的會話配置選項。

6)、丟棄的特性

①、PHP 7+ 版本移除了以下擴充套件:

erag, mysql  mssql  Sybase_ct

②、PHP 7+ 版本移除了以下 SAPI:

【注】SAPI:軟體中的語音技術包括兩方面的內容,一個是語音識別(speech recognition)

和語音合成(speech synthesis)。這兩個技術都需要語音引擎的支援。

aolserver   apache  apache_hooks  apache2filter   caudium  continuity   isapi  milter  nsapi  phttpd  pi3web  roxen  thttpd  tux   webjames

③、password_hash() 隨機因子選項

函式原 salt 量不再需要由開發者提供了。函式內部預設帶有 salt 能力,無需開發者提供 salt 值

④、capture_session_meta SSL 上下文選項

廢棄了 "capture_session_meta" SSL 上下文選項。 在流資源上活動的加密相關的元資料可以通過 stream_get_meta_data() 的返回值訪問。

涉及核心深層效能方面的優化,這裡暫不研究。