Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 动态类名开头的前导反斜杠_Php_Apache_Namespaces_Php 5.3 - Fatal编程技术网

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?如果只是冗余的,那就不会有问题。很明显,这更重要。听起来像个虫子。