PHP5.4.0新特性研究
1、内建Web Server
这的确是个好的改进,大大的方便了开发人员。以后开发机不装nginx,httpd也行
cd $PHP_INSTALL_PATH
./bin/php -S <addr>:<port> -t <docroot>
如:
前台运行:
./bin/php -S localhost: -t /data/www/
后台运行:
./bin/php -S localhost: -t /data/www/ >> /tmp/access.log >& &
2、数组定义,增加了一种简便写法
$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,既有部分接口的特性,又有部分类的特性,可以说是他们杂交的产物。
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来做上传进度条了。
还有很多其他特性,有兴趣的可以去官网查看,不在此提了。