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來做上傳進度條了。
還有很多其他特性,有興趣的可以去官網查看,不在此提了。
參考鏈接: