2010-02-07 35 views
0

我想製作一個「加載器類」,它需要選定的文件。使用類內的要求

所以我只能打電話給例如。 loader :: load('systemLibraries,'applicationLibraries')。

所以在這個load()方法中,我將使用require。但我已經嘗試過,看起來所需的文件不能在課堂外使用。

我該如何讓它全球訪問?

回答

2

這應該很好地工作:

class Loader{ 

    function load($class_name) 
    { 
     require($class_name ".php"); 
    } 
} 

Loader::load("MyClass"); 
$class = new MyClass; 

鑑於MyClass的是 「MyClass.php」

這在另一方面,將無法正常工作

class Loader{ 

    function load($class_name) 
    { 
     require($class_name ".php"); 
     $class = new $class_name; 
    } 
} 

Loader::load("MyClass"); 
$class->doSomething(); 

如果include.php外觀這樣

$var = "Hi"; 

您不能這樣做:

Loader::load("include"); 
echo $var; 

由於存在範圍問題。

您需要給我們提供更多關於的信息你正試圖訪問什麼。

1

是的,茶茶指出,確保您的裝載機類之外創建類的實例。由於您已經使用系統通常需要的術語系統庫,因此您可以使用__autoload magic function自動爲您自動包含它們。