<?php
namespace Beijing\dalou\bangong;
function display(){
echo "Beijing<br/>";
}
namespace Usa\Wa;
function display(){
echo "Usa<br/>";
}
use Beijing\dalou\bangong;
display();
我想请问下,在当前空间Usa\Wa下,use Beijing\dalou\bangong;意思不是把namespace Beijing\dalou\bangong空间下所有元素复制粘贴到Usa\Wa空间下吗?display()属于非限定名称访问,那么应该会自动寻找临近的空间访问,就是刚刚引入进来的Beijing\dalou\bangong空间下display()函数,怎么显示的结果依然是echo 'Usa<br/>';
2 回答
慕森王
TA贡献1777条经验 获得超3个赞
不是很清楚为什么会有这种奇葩而且不清楚的写法表示,同样挺好奇为啥没报错;use其实就是一个include,把引入的命名空间的程序放到当前一起执行,大概是这样一个意思。放在一个文件里,我觉得定义命名空间没太大意义,如果要用的话,应该也是这样用:
<?php
namespace Beijing\dalou\bangong {
function display(){
echo "Beijing<br/>";
}
}
namespace Usa\Wa {
function display(){
echo "Usa<br/>";
}
}
namespace Test\Test {
use Usa\Wa;
Wa\display();
}
另外,既然用命名空间了,就应该遵循面向对象的编程方式,还用函数式编程,总觉得很奇怪。
- 2 回答
- 0 关注
- 428 浏览
添加回答
举报
0/150
提交
取消