Php spl自动加载:未找到类–;名称空间问题?
我刚被PHP自动加载弄湿了脚。事实上,我认为我已经掌握了基本知识,但不知怎么的,它仍然不起作用 我得到了以下目录结构:Php spl自动加载:未找到类–;名称空间问题?,php,autoload,spl-autoload-register,spl-autoloader,Php,Autoload,Spl Autoload Register,Spl Autoloader,我刚被PHP自动加载弄湿了脚。事实上,我认为我已经掌握了基本知识,但不知怎么的,它仍然不起作用 我得到了以下目录结构: myLib -bootstrap.php -sven -project project.php bootstrap.php是使用lib时包含的文件。在这个文件中,我只有以下代码: spl_autoload_extensions('.php'); spl_autoload_register(); $var = new \
myLib
-bootstrap.php
-sven
-project
project.php
bootstrap.php
是使用lib时包含的文件。在这个文件中,我只有以下代码:
spl_autoload_extensions('.php');
spl_autoload_register();
$var = new \sven\project\project();
$var->init();
在project.php
中:
namespace sven\project;
class project {
public function init() {
echo 'It works!';
}
}
根据我的理解,自动加载程序的使用方式是,核心PHP自动加载程序应该将名称空间转换为目录,然后查找包含该类的PHP
而不是显示“它工作!”,抛出一个致命错误。不幸的是,我不能确切地说出错误是什么,因为CMS只通知我有一个致命错误。但是有了这样一个简单的结构,我确信这个错误是非常基本的,并且对于知道它是如何工作的人来说很容易找到 这个例子哪里出了问题?我是否正确地描述了自动加载器在这个设置中应该如何工作,或者是否存在误解 编辑:最终运行了错误日志:
致命错误:未定义类:第36行/xxx/bootstrap.php中的sven\\project\\project\\project\\project
这显然是错误的,但如何改变呢?为什么有两个反斜杠
spl_autoload_extensions('.php');
spl_autoload_register();
此代码仅适用于PHP5.3及以上版本。Sven
我刚刚回答了另一个关于spl_自动加载的问题,试试我的例子
我希望有帮助
附言:
另外,不要只自动加载路径上的所有.php文件,这可能很危险 嗯,我正在运行5.6.99&hhvm3.3.0;-)