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