Php 动态类名开头的前导反斜杠
守则:Php 动态类名开头的前导反斜杠,php,apache,namespaces,php-5.3,Php,Apache,Namespaces,Php 5.3,守则: $className = '\MyNamespace\MyClass'; $object = new $className(); 抛出错误“找不到类” 但是这个代码: $object = new \MyNamespace\MyClass(); 事实并非如此 第一个代码片段在暂存时起作用,但在本地时不起作用。我是否需要在本地服务器上启用某些功能 非常感谢您的帮助动态函数始终需要完全限定的命名空间名称,因此前导的\将是多余的。这就是为什么不应该指定它: $className = 'MyN
$className = '\MyNamespace\MyClass';
$object = new $className();
抛出错误“找不到类”
但是这个代码:
$object = new \MyNamespace\MyClass();
事实并非如此
第一个代码片段在暂存时起作用,但在本地时不起作用。我是否需要在本地服务器上启用某些功能
非常感谢您的帮助动态函数始终需要完全限定的命名空间名称,因此前导的\
将是多余的。这就是为什么不应该指定它:
$className = 'MyNamespace\MyClass';
$object = new $className();
但是,它不应该抛出错误。演示:只需查看字符串
$className
包含的内容。您会注意到,您应该始终跳过第一个斜杠
您可以创建一些帮助器来为您创建对象,并删除尾部斜杠(如果有)。new
无论如何都是邪恶的;) 在您的本地,是否确定PHP版本>5.3?如果只是冗余的,那就不会有问题。很明显,这更重要。听起来像个虫子。