Chinaunix首页 | 论坛 | 博客
  • 博客访问: 303431
  • 博文数量: 153
  • 博客积分: 3347
  • 博客等级: 中校
  • 技术积分: 1556
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-30 17:50
文章分类

全部博文(153)

文章存档

2013年(7)

2012年(21)

2011年(46)

2010年(16)

2009年(63)

我的朋友

分类: 系统运维

2012-09-10 11:46:38

PHP 5.4 的正式版应该很快会发布了,目前的版本是 ,提前体验一下 PHP 5.4 的一些新特性。现在开始。

1. 实例化时访问类成员

01class Human
02{
03    function __construct($name)
04    {
05        $this->name = $name;
06    }
07 
08    public function hello()
09    {
10        return "Hi " . $this->name;
11    }
12}
13 
14// old style
15$human = new Human("Gonzalo");
16echo $human->hello();
17 
18// new cool style
19echo (new Human("Gonzalo"))->hello();

2. 短数组定义语法

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

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

1foreach ([new Human("Gonzalo"), new Human("Peter")] as $human) {
2    echo $human->{'hello'}();
3}
4. 通过数组间接调用方法
1$f = [new Human("Gonzalo"), 'hello'];
2echo $f();

5. Callable typehint

1function hi(callable $f) {
2    $f();
3}
4 
5hi([new Human("Gonzalo"), 'hello']);

6. Traits

01trait FlyMutant {
02    public function fly() {
03        return 'I can fly!';
04    }
05}
06 
07class Mutant extends Human {
08    use FlyMutant;
09}
10 
11$mutant = new Mutant("Storm");
12echo $mutant->fly();
7. 支持数组提领(Array dereferencing support)
1function data() {
2    return ['name' => 'Gonzalo', 'surname' => 'Ayuso'];
3}
4 
5echo data()['name'];

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

更多 PHP 5.4 新特性的一些代码演示请看。

阅读(439) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~