tp的命名空间

来源:互联网 发布:淘宝客服专用表情包 编辑:程序博客网 时间:2024/06/06 19:42

当开发大型项目的时候,可能需要成千上万的文件,面向对象通过命名空间解决这个问题的。PHP命名空间是PHP5.3以后出现的。

命名空间中可以出现:类,函数,常

只有const定义的常量命名空间才有效。命名空间的名字必须符合PHP命名的规则。


命名空间的声明和使用:

<?phpnamespace China;const nation = '中国<br>';function getInfo(){    echo '我是中国人<br>';}namespace USA;const nation = 'USA<br>';function getInfo(){    echo 'I am a American<br>';}echo '<meta charset="utf-8" />';getInfo();                   //非限定名称访问\China\getInfo();            //完全限定名称访问
输出结果:

I am a American

我是中国人



命名空间多级访问一:

<?phpnamespace China\beijing\HaiDian;class Person{    static $name = "李白<br>";}namespace USA\Washington;class Person{    static $name = 'Abraham Lincoln';}echo '<meta charset="utf-8">';echo Person::$name;echo \China\Beijing\HaiDian\Person::$name;
运行结果:

Abraham Lincoln李白


命名空间多级访问二:

<?phpnamespace China\Beijing\HaiDian;function getInfo(){    echo '这是China\Beijing\HaiDian命名空间';}namespace China\Beijing;function getInfo(){    echo '锄禾日当午';}echo '<meta charset="utf-8">';getInfo();           //非限定名称HaiDian\getInfo(); 


空间元素访问的三种形式:

1、非限定名称访问

echo getInfo()

类似于:require (‘getinfo.php’);

2、限定名称访问,是相对限定

China\getInfo();

类似于:require(‘China/getInfo.php’);

3、完全限定访问

\China\getInfo()

类似于:require(‘C:\China\getinfo.php’);


命名空间注意事项

1、最顶层的\表示的是公共空间

2、namespace 必须在最上面

3、命名是虚拟的空间,不是真实存在的目录,当时ThinkPHP的命名空间是真实的地址路径

4、当前文件中具有命名空间的文件,不会改变当前文件的命名空间


原创粉丝点击