PHP5.3中提供了命名空间的支持。和α版的时候不同,在RC版中命名空间分隔符不再使用::,改为使用\。这样可以比较方便的区分命名空间引用和类静态方法调用,不过感觉那个\超级难看。
命名空间有两种声明方法,其一是用花括号括起来,就像C#里面那样,另一种方法是直接分号分隔,作用到下一个namespace标记或文件末尾。命名空间的声明不能跨文件,如果多个文件编写了同一命名空间中的类,需要各自声明同名的命名空间。废话少说,先看代码:
namespace AA;
class A {
public static $a = 100;
public function show() {
echo self::$a;
}
}
?>
这段代码和以下代码是等效的:
namespace AA {
class A {
public static $a = 100;
public function show() {
echo self::$a;
}
}
}
?>
不论哪种方法,调用的时候都可以直接用use语句引入
include_once(‘A.php’);
use AA\A;
$a = new A;
$a->show();
?>
当然也可以直接使用命名空间的完整路径
include_once(‘A.php’);
use AA\A;
$a = new \AA\A;
$a->show();
?>
注意这段代码中命名空间AA前面增加了一个\,这样命名空间就使用绝对路径,如果当前文件中已经声明了某个命名空间,并且需要在其中调用其它空间中的内容,可以使用绝对命名空间路径。use语句也支持绝对路径。