2013-01-19 72 views
0

我想使用的功能__autoload .. 比如我在同一個文件夾中的兩個文件:如何在php中使用autoload和namespace?

的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(); 

回答

2

當你正在做

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

你其實找一個名爲 「$ classname.php」 文件。刪除單引號。

嘗試:

function __autoload($className){ 
    include(end(explode('\\', $className)) . '.php'); 
} 
+0

對不起,這是我做了問這個問題是錯誤的。代碼是正確的。它仍然不起作用。 –

+0

你在$ className中得到了什麼? – galchen

+0

它試圖包含SomeNameSpace \ MyClass.php但MyClass.php不在SomeNameSpace文件夾中,它位於相同的文件夾中。所以這是問題。 –

相關問題