tp的命名空间

xiaoxiao2021-02-28  90

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

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

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

命名空间的声明和使用:

<?php namespace 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

我是中国人

命名空间多级访问一:

<?php namespace 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李白

命名空间多级访问二:

<?php namespace 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、当前文件中具有命名空间的文件,不会改变当前文件的命名空间

转载请注明原文地址: https://www.6miu.com/read-54835.html

最新回复(0)