我想使用__autoload函数.. 例如,我在同一个文件夹中有两个文件:
index.php,MyClass.php
MyClass.php是这样的:
// filename: MyClass.php
namespace SomeNameSpace;
class MyClass{
public static function helloWorld(){ echo 'Hello'; }
}
所以我想做的是使用__autoload来加载这个类。但是当我这样做时:
function __autoload($className){
include($className.'.php');
}
autoload不起作用,因为该类位于命名空间中。
任何帮助?
index.php的例子:
//index.php
//the autoload method above
SomeNameSpace\MyClass::helloWorld();
答案 0 :(得分:2)
当你做的时候
include('$className'.'.php');
您实际上正在寻找名为“$ classname.php”的文件。删除单引号。
尝试:
function __autoload($className){
include( end(explode('\\', $className)) . '.php');
}