【发布时间】:2017-07-10 13:18:36
【问题描述】:
我将首先展示我的代码,为了学习,我尽量保持简单。
我的代码
index.php -
require('autoloader.php');
$hammer = new Acme\Tools\Hammer();
autoloader.php -
spl_autoload_register(function ($class_name) {
include $class_name . '.php';
});
Hammer.php -
namespace Acme\Tools;
class Hammer
{
public function useTool()
{
echo 'You start using the hammer!';
}
}
我的问题/错误信息
警告:包括(Acme\Tools\Hammer.php):无法打开流:否 第 4 行 C:\xampp\htdocs\php\autoloader.php 中的此类文件或目录
警告:include():无法打开“Acme\Tools\Hammer.php” 包含(include_path='C:\xampp\php\PEAR') C:\xampp\htdocs\php\autoloader.php 在第 4 行
致命错误:未捕获的错误:找不到类“Acme\Tools\Hammer” C:\xampp\htdocs\php\index.php:5 堆栈跟踪:#0 {main} 抛出 C:\xampp\htdocs\php\index.php 在第 5 行
我最初在 index 中使用 'use' 语句,如下所示,但改变了它认为它会有所帮助。
旧 index.php -
use Acme\Tools;
require('autoloader.php');
$hammer = new Tools\Hammer();
有谁知道为什么两者都不起作用?
【问题讨论】:
-
短语
No such file or directory有什么不清楚的地方? -
你把 Hammer.php 放在哪里了?
-
@IvoP 都在同一个目录中
-
@u_mulder 我可以阅读,但就像我说的我不确定错误是什么,我也是命名空间和自动加载的新手,你可以想象,一切都在同一个目录中。但我认为它试图自动加载命名空间目录。我不知道如何让它拉一个命名空间目录。
标签: php