【发布时间】:2015-06-01 09:08:37
【问题描述】:
根据PHP页面顶部的评论spl_autoload_register( ):
对于使用命名空间类的 PHP 5.3 用户来说是个好消息:
当您创建与包含类的名称空间匹配的子文件夹结构时,您甚至不必定义自动加载器。
<?php
spl_autoload_extensions(".php"); // comma-separated list
spl_autoload_register();
?>
但是,当我有以下结构时:
* classes/someclass.php
* index.php
其中someclass.php 包含以下内容:
<?php
class someclass {
function __construct( ) {
echo 'It works!';
}
}
?>
而index.php 包含:
<?php
spl_autoload_extensions(".php");
spl_autoload_register();
new classes\someclass;
?>
然后我得到以下错误:
致命错误:spl_autoload(): Class classes\someclass could not be 已加载
我弄错了吗?我怎样才能做到这一点?
来自 cmets
这对课程也不起作用:
<?php
namespace classes;
class someclass {
function __construct( ) {
echo 'It works!';
}
}
?>
【问题讨论】:
-
@OhAuth 对不起。我完全不知道你怎么可能认为这是一个重复的甚至是远程相关的。
-
someclass在classes命名空间中不是。命名空间与目录不同。 -
前段时间我在 php.net 上写了那条评论,当时我在 Windows 系统上工作。后来,我不得不在another comment 的同一页面上部分撤销我在该评论中写的内容,其中还包含我能想到的最简单的问题的可能解决方案(除了使用 Composer)。
-
@BhargavRao 为什么 SednaSoft 的回答被删除了?
标签: php autoload autoloader spl-autoload-register