一个关于PHP命名空间的疑惑
阿神
阿神 2017-04-10 14:22:22
0
1
413

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

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(); }

果然出现了和预期一样的错误。我知道可以通过完全限定的方式来解决,但是我仍然想明白这是什么原理,还望高手解惑。

是我自己疏忽了,在手册中找了命名空间和动态语言特征

阿神
阿神

闭关修行中......

membalas semua (1)
刘奇

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

http://php.net/manual/zh/language.nam...

    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan
    Tentang kita Penafian Sitemap
    Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!