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

在编程的时候遇到这样一个关于命名空间的问题,先上代码:

在编程的时候遇到这样一个关于命名空间的问题,先上代码:

PHP
Smart猫小萌 2023-04-17 18:14:43
namespace Test {    class Test {} }namespace Chou {    use Test\Test;    class Mee {        public $class = 'Test';        public function getClass()         {            return new $this->class();         }     }     $tmp = new Mee();     $tmp->getClass(); }我试图在getClass方法中通过变量动态实例化另一个命名空间的类,但是触发了“Class not found”错误。我觉得时$class变量的问题,所以又把测试代码简化了一下:namespace Chou {    use Test\Test;    $test = 'Test';    $tmp = new $test(); }果然出现了和预期一样的错误。我知道可以通过完全限定的方式来解决,但是我仍然想明白这是什么原理,还望高手解惑。
查看完整描述

1 回答

?
波斯汪

TA贡献1811条经验 获得超4个赞

PHP手册里有写,在变量中使用命名空间必须使用完全限定名称,规定如此。

查看完整回答
反对 回复 2023-04-20
  • 1 回答
  • 0 关注
  • 92 浏览

添加回答

举报

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