php5.3 注意事项说明

php5.3 注意事项说明

php5.3

新特性

1.支持命名空间(namespace)

5.3以前

复制代码 代码如下:

<?php

class Zend_Db_Table_Select {

//表示当前这个类文件位于Zend/Db/Table下

}

5.3

复制代码 代码如下:

<?php

namespace Zend/Db/Table

class Select {

}

2.支持延迟静态绑定

5.3以前(__CLASS__获得类名)self::who()

复制代码 代码如下:

<?php

class A {

public static function who() {

echo __CLASS__;

}

public static function test() {

self::who();

}

}

class B extends A {

public static function who() {

echo __CLASS__;

}

}

B::test();

?>

输出A

5.3(__CLASS__获得类名)static::who();

复制代码 代码如下:

<?php

class A {

public static function who() {

echo __CLASS__;

}

public static function test() {

static::who(); // 这里实现了延迟的静态绑定

}

}

class B extends A {

public static function who() {

echo __CLASS__;

}

}

B::test();

?>

输出B

3.支持goto语句

多数计算机程序设计语言中都支持无条件转向语句goto,当程序执行到goto语句时,即转向由goto语句中的标号指出的程序位置继续执行。

4.支持闭包

复制代码 代码如下:

<?php

$msg = "hello";

$callback = function() use($msg){

print_r($msg);

}

$msg = "hello world!";

callback($callback);

输出

hello

hello world!

5.新增魔术方法__callStatic()

PHP中原本有一个魔术方法__call(),当代码调用对象的某个不存在的方法时该魔术方法会被自动调用。

新增的__callStatic()方法则只用于静态类方法。当尝试调用类中不存在的静态方法时,__callStatic()魔术方法将被自动调用。

6.新增一种常量定义方式(有时代码出错,如undefined HE,你要看看是否支持const)

复制代码 代码如下:

<?php

const CONSTANT = 'Hello World';