PHP是一門廣泛使用的開源腳本語言,用于web開發。PHP有許多版本,例如在Windows上使用的PHP7,與UNIX/LINUX上的PHP5;還有許多人正在使用較舊的版本PHP5.6。然而,PHP6卻從未被正式發布,而PHP 7成了新的主流版本。這篇文章將聚焦于PHP7.2。
PHP7.2與之前版本最顯著的不同之處在于它的速度有了很大的提升。這是通過引入新的Zeev Suraskire和Dmitry Stogov合并中的opcode優化來實現的。例如,一個十分常見的操作,如偏移操作,就可以得到數倍的加速,如下所示:
//PHP 5.x $a = "123456789101112131415161718192021222 .“a”; $b = “222” . $a[10] . “111”; $b = “{$a[10]}{$b}”; $b = $a[15] . $b . $a[20]; // PHP 7.x $a = "123456789101112131415161718192021222 .“a”; $b = “222” . $a{10} . “111”; $b = “{$a{10}}{$b}”; $b = $a{15} . $b . $a{20};
此外,PHP7.2還引入了新的特性,例如 null合并運算符(??)。以前在PHP中處理null是件非常麻煩的事情,因為必須檢查該變量是否為null,如果它是,在提供一個默認值。然而,使用null合并運算符,可以像下面這樣簡單地處理它:
$value = $data['key'] ?? $default;
如果$data['key']存在,則$value分配為它的值,否則,它將分配默認值$default。
PHP7.2還可以處理多個空值,通常在多個變量之間進行比較。以前,開發人員需要使用 isset函數或 empty函數來檢查變量的值,但這樣很麻煩。在PHP7.2中,可以使用組合比較運算符來比較空值,例如:
if($var ?? false){ // code }
如果$var具有值,則會返回該值,如果沒有,則使用false。
除此之外,PHP7.2還引入了一個新的函數,random_bytes(),用于生成加密安全的隨機字節,并且加載時不需要附加擴展。這是使用一種完全隨機的方法生成字節,而不是使用偽隨機算法(例如,如果使用mt_rand或rand)。例如:
$random_bytes = random_bytes(32); echo(bin2hex($random_bytes)); 相關60d9c913d55fdbba1dad85bc3cbe9a7a7a511eae8f16b7d94fa448f02e961392
在這個例子中,random_bytes()函數生成一個包含32字節的隨機字符串,bin2hex()函數將它轉換為16進制字符串,然后該隨機位呈現給用戶。
綜上所述,PHP7.2是PHP的一次重要升級,它通過增加性能和引入新特性,使得開發人員能夠設計更加出色和靈活的web應用。無論是在處理大型數據集還是在進行加密時,都可以用簡單而直觀的方法進行處理。如果你還沒有升級到PHP7.2,那么你可能已經開始拖累一些相當不錯的性能。