为什么PHP new 可变class时提示错误?
namespace Demo;<br />use Demo\Controller\DemoController;<br /><br />$c_str=$_GET['c'];<br />$c_name="DemoController";<br /><br />require 'Controller/'.$c_name.'.php';<br /><br />$method=$_GET['a'];<br /><br />$demo=new $c_name; // 我在这块手工填写: $demo=new DemoController; 是没问题的,换成$c_name 就报错<br />$demo->$method();
------解决思路----------------------namespace Demo;
use Demo\Controller\DemoController;
确定下路径是否正确
------解决思路----------------------这不就对了吗?
DemoController 在 Demo\Controller 命名空间下
你
$c_name="Controller\DemoController";
也是可以的
另外请注意:
use Demo\Controller\DemoController;
是使用 Demo\Controller\DemoController 命名空间
而你实际并不存在这个命名空间,因为 DemoController 是类
你若写作
use Demo\Controller\DemoController as DemoController;
就可以 $c_name="DemoController"; 了
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn