下面的代码是通过不同的命名空间来访问调用相同名称的函数或者常量。
<?php /** * 常量的命名空间 */ namespace a{ const SITE_NAME = "书蓝画青"; } namespace b{ const SITE_NAME = "boke.slhq.cn"; } namespace { echo \b\SITE_NAME; }
而如果使用define创建常量则没有命名空间的概念,默认的就是全局。
namespace a{ // const SITE_NAME = "书蓝画青"; define("SITE_NAME","书蓝画青"); } namespace b{ const SITE_NAME = "boke.slhq.cn"; } namespace { // echo \b\SITE_NAME; echo SITE_NAME; }
define不受命名空间限制,如果在命名空间内使用常量则使用const进行创建。
普通的变量同样不受命名空间的限制,而常量是有命名空间限制的。