我找到了有用的代码,可以帮助我保持代码的可读性。
function class_autoload($classname) {
echo "class_autoload";
@require_once ("class-{$classname}.php");
}
spl_autoload_register('class_autoload');
当服务器需要它们来运行我的代码时,它会加载类。 但现在我有一个问题: 我的一个php文件在另一个文件夹中,然后是其余文件夹。所以我不能用这个:
@require_once ("class-{$classname}.php");
我无法更改路径,因为另一个php文件将结束工作:/ 我现在应该做什么?
答案 0 :(得分:2)
require_once
会产生致命错误。错误控制操作符(@
)不会更改它。请改用include_once
,或者测试您尝试阅读的文件是否确实存在。
每次都可以调用spl_autoload_register
传递不同的函数名称。然后,自动加载程序将调用其中的每个函数以尝试加载该类。使用此功能编写类似于class_autoload
的新功能,但是它知道类文件的位置,您无法使用当前class_autoload
加载。调用spl_autoload_register
,将该新函数作为参数传递。当然,如果你不改变require_once
中的class_autoload
,那么新函数永远不会被调用;在自动加载器有机会尝试新功能之前,你的脚本已经死了。
另外,请查看PSR-0。这描述了类名应该如何转换为目录和文件名。在选择放置位置以及如何命名类文件时,请尝试遵循此标准。它让您和尝试理解您的代码的人们的生活更轻松。