0

__autoload 関数を使用したい..たとえば、同じフォルダーに 2 つのファイルがあります。

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 に答える