PHP 官方在台灣時間3月2號終於釋出 5.4 版本,我們可以參考官網的 release announcement,想要抓原始碼下來編譯可以參考此下載連結,這次 5.4 改版,有幾個最主要的新功能可以介紹給大家知道: traits、a shortened array syntax、a built-in webserver for testing purposes,底下來一一介紹。
Array 新寫法 大家一般宣告 PHP Array 都是用
array() 來宣告,在5.4之後開始支援 [] 的寫法,有沒有注意到,這跟 Javascript 寫法一樣了,底下看個例子 5.3 以前的寫法
"bar", "bar" => "foo" ); ?>5.4 之後的寫法
"bar", "bar" => "foo" ]; ?>簡化來說可以把
array() 取代成 [],另外講 Array dereferencing 在 5.4 的新用法,底下先看個例子
一般在5.4以前只要在 function 回傳 array(),都需要在宣告變數去 assign,但是在 5.4 可以直接拿 function 來用綜合上面的介紹,我們以後可以把 Array function 改寫成底下方式111, 2 => 222, 3 => 333); // or return [1 => 111, 2 => 222, 3 => 333]; } $one = foo()[0]; echo $one; // 1 $two = bar()[2]; echo $two; // 222 ?>
用 PHP 快速建置 Web Server 大家在寫 PHP 該如何看執行結果呢?除了執行 command line 看到結果之外,一定要有 Web Server 才可以透過瀏覽器瀏覽,從 5.4 之後,PHP 提供了 command line 讓開發者可以快速建置 Web Server。 簡單針對目前目錄
$ cd ~/public_html $ php -S localhost:8000可以定義目錄
$ cd ~/public_html $ php -S localhost:8000 -t foo/或者是可以寫 router script
Welcome to PHP"; } ?>執行
$ php -S localhost:8000 router.php更多用法可以參考:
Traits 新功能 Traits 讓你在開發物件 method 可以重複利用,對於 Code reuse 真是一大幅音,底下我們看看幾個官網範例
sayHello(); ?>自己宣告 trait SayWorld,在 MyHelloWorld class 裡直接用 use 引入,最後輸出結果是 Hello World!。接著我們看看
優先權順序問題
sayHello(); ?>我們可以發現同時兩個 sayHello() method,但是因為讀取優先權的問題,後載入才是真正輸出結果的 method。接著我們看 Multiple Traits Usage 多重使用
sayHello(); $o->sayWorld(); $o->sayExclamationMark();> ?>大家可以同時載入多個 trait,上面例子也蠻清楚的,其實官網也還有很多範例,如何解決 trait method 衝突問題,這些在
Traits 官網上面都有解說,這次就介紹到這裡,更多 PHP 5.4 消息可以參考 migration guide
See also
- 來聊聊 PHP & JavaScript & CSS 的 Coding Style
- 為什麼我選擇使用 Laravel Framework?
- Laravel 搭配 Google, Facebook, Twitter 第三方 OAuth 認證
- 將 wordpress 強制使用 SSL 連線
- PHP 7 vs HHVM Benchmark 比較
- Laravel 50 個小技巧 + Laravel 5.2 新功能
- Laravel Homestead 支援 MySQL 5.7 和 Node 5.0
- PHP-FIG 新網站
- Laravel Homestead 支援 PHP 7
- Laravel 5.1 is released