用大括号语法实现在一个脚本中创建多个命名空间并访问成员
实例
<?php /** * 在一个文件中创建多个命名空间 */ namespace Demo1 { function show() { echo '当前命名空间是:',__NAMESPACE__,'<br>'; } } namespace Demo2 { function show() { echo '当前命名空间是:',__NAMESPACE__,'<br>'; } echo show(),'<br>'; echo \Demo1\show(),'<hr>'; } namespace { echo \Demo1\show(),'<br>'; echo \Demo2\show(); }
运行实例 »
点击 "运行实例" 按钮查看在线实例
以别名方式访问命名空间下的类、属性和方法
实例
<?php /** * 以别名方式访问命名空间下的类、属性和方法 */ use \Demo1\Demo as De1; require 'space/tr1.php'; echo (new De1)::NAME,'<br>'; echo (new De1)->fun,'<br>'; echo (new De1)->show(),'<br>';
运行实例 »
点击 "运行实例" 按钮查看在线实例
实例
<?php namespace Demo1 { class Demo { const NAME = 'space1'; public $fun = __NAMESPACE__; public function show() { echo __NAMESPACE__,'下的',__FUNCTION__,'方法'; } } }
运行实例 »
点击 "运行实例" 按钮查看在线实例
非限定名称,限定名称和完全限定名称的命名空间之间的区别:
非限定名称不包含命名空间分隔符的标识符,限定名称含有命名空间分隔符的标识符,完全限定名称包含命名空间分隔符,并以命名空间分隔符开始的标识符。
非限定名称,限定名称和完全限定名称的命名空间之间的联系:
都需要使用use导入