我使用下面的代码片段来自动加载我的php类
spl_autoload_register(function ($path) {
$path = strtolower(str_replace('''', '/', $path));
require_once "./$path.class.php";
});
现在我正在使用我的类,如use Core'ClassA as ClassA;
或use ABC'ClassBBC as ClassBBC
,它的工作完美。
但是当我想创建一个php内置类mysqli
的新实例时,我得到以下警告:
Warning: require_once(./mysqli.class.php): failed to open stream: No such file or directory in /var/www/html/projectA/autoloader.php on line 9
我怎么能强制自动加载器加载mysqli
不管我的自动加载器?
这里有几点:
- 首先,您应该在使用file_exists 之前检查该文件是否存在。第二,不要以"。/"开头。您应该只使用绝对路径。PHP -打开流失败:没有这样的文件或目录第三,你不需要使用require_once。由于调用了自动加载器,因此可以确定文件尚未包含在内。require_ once比require慢。
在任何情况下,你的自动加载器被mysqli调用的事实意味着它之前没有被找到,所以这是奇怪的。由于您提到您正在使用遗留代码,因此可能还需要重新注册默认的自动加载器。