PHP5.4.0新特性研究

1、內建Web Server

這的確是個好的改進,大大的方便了開發人員。以後開發機不裝nginx,httpd也行大笑

cd $PHP_INSTALL_PATH
./bin/php -S <addr>:<port> -t <docroot>
如:
前臺運行:
./bin/php -S localhost:80 -t /data/www/
後臺運行:
./bin/php -S localhost:80 -t /data/www/ >> /tmp/access.log 2>&1 &

2、數組定義,增加了一種簡便寫法

<?php
$arr1 = array(1, 2, 3); 
$arr2 = [1, 2, 3]; // 新增簡便寫法

print_r($arr1);
print_r($arr2);

var_dump($arr1 === $arr2);
?>

結果:

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
)
bool(true)

熟悉javascript的同學,應該對以上這種寫法相當熟悉,呵呵。

3、Traits特性

traits,既有部分接口的特性,又有部分類的特性,可以說是他們雜交的產物。

<?php
trait Object {
    public function get($key) {
        return $GLOBALS[$key];
    }   
}

trait Common {
    public function set($key, $val) {
        $GLOBALS[$key] = $val;
    }   

    public function set2($key, $val) {
        $GLOBALS[$key] = $val;
    }   
}

class App {
    // 引入trait(類似於多繼承)
    use Object, Common;

    /** 
     * 此方法會覆蓋trait中的set2方法(類的重載特性)
     */
    public function set2($key, $val) {
        $GLOBALS[$key] = 'Hello world set by App class!';
    }   
}

$app = new App();
$app->set('foo', 'Hello world!');
echo $app->get('foo');
echo "\n";
echo $app->set2('doo', 'Hello world!');
echo $app->get('doo');
echo "\n";
?>

結果:

Hello world!
Hello world set by App class!

很像多繼承,只是它的實現,跟多繼承不同,可以參看官方文檔說明。

4、上傳進度反饋支持

上傳進度會存儲在SESSION中(默認開啓,可在php.ini中修改),也就是說,以後可以用Ajax結合PHP來做上傳進度條了。

還有很多其他特性,有興趣的可以去官網查看,不在此提了。

參考鏈接:

http://php.net/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章