为了账号安全,请及时绑定邮箱和手机立即绑定

PHP命名空间use 引入何时发挥作用

PHP命名空间use 引入何时发挥作用

PHP
慕哥9229398 2019-03-14 01:43:25
<?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();
}

另外,既然用命名空间了,就应该遵循面向对象的编程方式,还用函数式编程,总觉得很奇怪。

查看完整回答
反对 回复 2019-03-18
  • 2 回答
  • 0 关注
  • 428 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信