首先,php 的namespace关键字 在php5.3以后才能得到支持。我一直对namespace 的这个关键字有所疑惑,今天做了几个实验,以验证我的想法。
第一点:namespace 的作用域在于单个php文件内。
namespace默认来说都必须在php文件中第一行写上,申明在这里开始,但是到那里结束呢?
如果没有第二个namespace申明出现。那么所有在本文件内申明的函数,类,常量,都在这个命名空间里。看代码
运行结果:
第二点:动态包含外部php文件,该外部php文件的类,常量,函数 并不属于本文件命名空间。
index.php代码:
include.php代码:
运行结果:
正如运行结果所示,就算把include.php的代码包含进来,但是根据以往我编写php的经验,以为就是简单的将代码包含进来的错觉(毕竟以前都是直接用被包含php文件里的变量,函数),在这里namespace jam; 并没有把include.php文件里函数say();当作jam\say();可以证明。
小学生能力有限,望各位看官,大神,及时斧正。