PHP5.4 逐渐稳定、慢慢成为主流,而在 PHP5.3 升级到 PHP5.4 时,需要了解一些新特 性和新功能。
1.短数组定义语法
<?php $arr = [1, 'Zhou', 'www.baiduyo.com']; echo $arr[2];
2.函数访问数组解析
<?php function fn() { return array('Zhou', 'Jack'); } //$demo = fn(); //echo $demo[0]; echo fn()[0]; //echo ['Zhou', 'Jack'][0];
3.实例化对象直接访问成员
<?php class Demo { public function index() { echo __CLASS__; } } (new Demo)->index(); (new Demo())->index();
4.通过数组间接调用对象方法
<?php class Demo { public function __construct($name) { $this->name = $name; } public function index() { return $this->name; } } $demo = [new Demo('Zhou'), 'index']; echo $demo();
5.支持 Class::{expr}()语法
<?php class Demo { public function __construct($name) { $this->name = $name; } public function index() { return $this->name; } } foreach ([new Demo('Zhou'), new Demo('Jack')] as $demo) { echo $demo->{'index'}().' '; }
6.Traits 语法
<?php trait Base { public function index() { parent::index(); echo 'World!'; echo 'ID:'.$this->id; } } class Demo { public function index() { echo 'Hello '; } } class MyDemo extends Demo { private $id; public function __construct() { $this->id = 123456; } use Base; } class YourDemo extends Demo { } //1.子类的私有属性不能减少冗余 //2.有六个子类,三个子类需要world,三个子类不需要world,那么world就会在三个子类出现冗余 $mydemo = new MyDemo(); $mydemo->index(); echo '<br />'; $youdemo = new YourDemo(); $youdemo->index();
不兼容的部分
1.魔术引号 get_magic_quotes_gpc()被移除;
更多不兼容的部分请访问官网:
http://www.php.net/manual/zh/migration54.php