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