0

我想使用 __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');
}

自动加载不起作用,因为该类位于命名空间中。

有什么帮助吗?

index.php 的示例:

//index.php
//the autoload method above
SomeNameSpace\MyClass::helloWorld();
4

1 回答 1

2

当你在做

include('$className'.'.php');

您实际上正在寻找一个名为“$classname.php”的文件。删除单引号。

尝试:

function __autoload($className){
    include( end(explode('\\', $className)) . '.php');
}
于 2013-01-19T20:22:00.630 回答