我的文件中没有看到任何错误,但是当我运行我的代码时,它会显示以下错误:
警告:require_once(Core.php):无法打开流:第7行的C:\ xampp \ htdocs \ completed \ inc \ autoload.php中没有此类文件或目录
致命错误:require_once():无法在C:\ xampp \ htdocs \ completed \ inc \ autoload.php中打开所需的'Core.php'(include_path ='。; C:\ xampp \ php \ PEAR')第7行
我的代码是:
类/ core.php中
<?php
class Core {
public function run() {
ob_start();
require_once(Url::getPage());
ob_get_flush();
}
}
INC / autoload.php
<?php
require_once('config.php');
function __autoload($class_name) {
$class = explode("_", $class_name);
$path = implode("/", $class).".php";
require_once($path);
}
的index.php
<?php
require_once('inc/autoload.php');
$core = new Core();
$core->run();
答案 0 :(得分:2)
我知道有点晚了。我正在研究这个因为我有同样的问题。这是我尝试过的,它对我有用。
//此代码适用于inc / autoload.php文件。
define('__ROOT__', dirname(dirname(__FILE__)));
require_once(dirname(__FILE__) . "/config.php");
//require_once(inc/config.php);
function __autoload($className){
$class = explode("_",$className);
$path = implode("/",$class).".php";
require_once($path);
}
请我开始学习PHP,我的立场由你们纠正。 我希望这有帮助。
答案 1 :(得分:1)
您的Core
课程显然定义于:
C:\xampp\htdocs\completed\classes\Core.php
但您尝试加载此文件:
C:\xampp\htdocs\completed\Core.php
构建一个使用相对路径*的类自动加载器并不是一个好主意。我建议你在这里添加一个前缀来构建一个绝对路径:
$path = implode("/", $class).".php";
E.g:
$path = __DIR__ . '/../classes/' . implode("/", $class).".php";
(*)除其他原因外,因为PHP中的相对路径是相对于 main 脚本(而不是发生路径使用时的文件)所以源目录取决于你的脚本从。
加载autoload.php
答案 2 :(得分:1)
我遇到了与你同样的问题。我觉得你迟到了。但可能对其他人有帮助。
我没有在autoload.php文件中包含config.php文件
<强> INC / autoload.php 强>
//require_once('config.php');
我在index.php 中包含了config.php文件,如下所示:
<强>的index.php 强>
require_once('inc/config.php');
require_once('inc/autoload.php');
这对我有用,我希望这也适合你:)。感谢您抽出时间阅读我的评论。
答案 3 :(得分:0)
因为在同一个文件夹中
require_once('inc/autoload.php');
require_once('config.php');
所以..我想可能应该这样
require_once('inc/config.php');