PHP開發(fā)者和愛好者們,在等待已久的里程碑版本——PHP 5.4終于來臨!相較于5.3,這個版本有多項主要更新和改進(jìn),包括簡化語法、提高性能和使用特性、增強(qiáng)安全機(jī)制、擴(kuò)展面向?qū)ο蟮墓δ堋⑼晟艭LI工具。
首先介紹5.4中的一個重要特性——traits,它可讓開發(fā)者以可復(fù)用的方式支持多繼承。我們先來看看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可以解決單一繼承的限制,讓你在不同類之間復(fù)用與繼承無關(guān)的功能。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中另一個引人注目的特性——短數(shù)組語法,它可以讓你用更簡短的方式來定義數(shù)組:
// 以前的方式 $array1 = array('one', 'two', 'three'); // 新方式 $array2 = ['one', 'two', 'three'];
這種語法改變不大,但在可讀性和編寫效率方面的提升仍然是非常顯著的。
下面介紹的是一個性能升級的特性——OPcache,這是一個內(nèi)置的代碼緩存工具。當(dāng)你的php腳本被執(zhí)行時,PHP編譯器會針對每個文件進(jìn)行編譯。而當(dāng)開啟OPcache后,編譯過的代碼將會被緩存,使得包括解析和編譯在內(nèi)的處理時間會少很多。嚴(yán)格測試數(shù)據(jù)表明,相同的程序在開啟OPcache后運行時間峰值平均下降了200-300ms。
我們現(xiàn)在來看一個例子,如何開啟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
最后,再介紹一個提高代碼健壯性和可讀性的特性——內(nèi)建 Web Server。在以前,為了調(diào)試一個 PHP 站點,我們需要使用 Apache 或 Nginx 這些服務(wù)端軟件,甚至出現(xiàn)了越來越復(fù)雜的配置,這將給我們帶來很多不必要的麻煩。在5.4中,PHP直接內(nèi)嵌一個Web服務(wù)器,無需安裝Apache或Nginx。我們現(xiàn)在來看一個讓W(xué)eb服務(wù)器運行的例子:
$ cd /path/to/your/project $ php -S localhost:8000
現(xiàn)在,你就能通過瀏覽器輸入 "localhost:8000" 的地址來訪問你的項目。
到此,我們詳細(xì)介紹了PHP 5.4版本中的一些新特性,包括traits、短數(shù)組語法、OPcache和Web服務(wù)器。盡管它們改變的不是那么大,但這些改進(jìn)卻大大提高了生產(chǎn)效率和代碼質(zhì)量,越來越受到大家的歡迎。