PHP 5.4 的新特性

来源:互联网 发布:如何下载java软件下载 编辑:程序博客网 时间:2024/06/04 08:38

现在开始。

1. 实例化时访问类成员

class Human
{
    function __construct($name)
    {
        $this->name = $name;
    }

    public function hello()
    {
        return "Hi " . $this->name;
    }
}

// old style
$human = new Human("Gonzalo");
echo $human->hello();

// new cool style
echo (new Human("Gonzalo"))->hello();

 

2. 短数组定义语法

$a = [1, 2, 3];
print_r($a);

 

3. 支持 Class::{expr}() 语法

foreach ([new Human("Gonzalo"), new Human("Peter")] as $human) {
    echo $human->{'hello'}();
}

 

4. 通过数组间接调用方法

$f = [new Human("Gonzalo"), 'hello'];
echo $f();

 

5. Callable typehint

 

function hi(callable $f) {
    $f();
}

hi([new Human("Gonzalo"), 'hello']);

 

6. Traits

trait FlyMutant {
    public function fly() {
        return 'I can fly!';
    }
}

class Mutant extends Human {
    use FlyMutant;
}

$mutant = new Mutant("Storm");
echo $mutant->fly();

 

7. 支持数组提领(Array dereferencing support)

function data() {
    return ['name' => 'Gonzalo', 'surname' => 'Ayuso'];
}

echo data()['name'];

 

目前多数 IDE 还不支持这些特性,因此可能会报语法错误。