PHP開發者和愛好者們,在等待已久的里程碑版本——PHP 5.4終于來臨!相較于5.3,這個版本有多項主要更新和改進,包括簡化語法、提高性能和使用特性、增強安全機制、擴展面向對象的功能、完善CLI工具。
首先介紹5.4中的一個重要特性——traits,它可讓開發者以可復用的方式支持多繼承。我們先來看看traits代碼如何使用:
trait CanSwim { public swim() { echo "I can swim."; } } class Animal { } class Mammal extends Animal { } class Whale extends Mammal { use CanSwim; } $whale = new Whale(); $whale->swim(); //輸出:"I can swim."
traits可以解決單一繼承的限制,讓你在不同類之間復用與繼承無關的功能。traits也可以被組合,稱為trait組合,例如:
trait CanFly { public fly() { echo "I can fly."; } } trait CanWalk { public walk() { echo "I can walk."; } } class Bird { use CanFly, CanWalk; } $bird = new Bird(); $bird->fly(); //輸出:"I can fly." $bird->walk(); //輸出:"I can walk."
接下來看看5.4中另一個引人注目的特性——短數組語法,它可以讓你用更簡短的方式來定義數組:
// 以前的方式 $array1 = array('one', 'two', 'three'); // 新方式 $array2 = ['one', 'two', 'three'];
這種語法改變不大,但在可讀性和編寫效率方面的提升仍然是非常顯著的。
下面介紹的是一個性能升級的特性——OPcache,這是一個內置的代碼緩存工具。當你的php腳本被執行時,PHP編譯器會針對每個文件進行編譯。而當開啟OPcache后,編譯過的代碼將會被緩存,使得包括解析和編譯在內的處理時間會少很多。嚴格測試數據表明,相同的程序在開啟OPcache后運行時間峰值平均下降了200-300ms。
我們現在來看一個例子,如何開啟OPcache:
// 在php.ini文件里加入下面這行代碼 zend_extension=php_opcache.dll // 在php.ini文件里配置OPcache選項 [opcache] opcache.enable=1 opcache.memory_consumption=128 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=4000 opcache.validate_timestamps=0 opcache.revalidate_freq=0
最后,再介紹一個提高代碼健壯性和可讀性的特性——內建 Web Server。在以前,為了調試一個 PHP 站點,我們需要使用 Apache 或 Nginx 這些服務端軟件,甚至出現了越來越復雜的配置,這將給我們帶來很多不必要的麻煩。在5.4中,PHP直接內嵌一個Web服務器,無需安裝Apache或Nginx。我們現在來看一個讓Web服務器運行的例子:
$ cd /path/to/your/project $ php -S localhost:8000
現在,你就能通過瀏覽器輸入 "localhost:8000" 的地址來訪問你的項目。
到此,我們詳細介紹了PHP 5.4版本中的一些新特性,包括traits、短數組語法、OPcache和Web服務器。盡管它們改變的不是那么大,但這些改進卻大大提高了生產效率和代碼質量,越來越受到大家的歡迎。