在一个类中使用require

时间:2010-02-07 05:24:20

标签: php oop class

我想创建一个需要选择文件的“加载器类”。

所以我可以打电话给例如。 loader :: load('systemLibraries,'applicationLibraries')。

所以在这个load()方法中我将使用require。但我试过这个,似乎所需的文件不能在课外使用。

如何让它全局访问?

2 个答案:

答案 0 :(得分: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 :(得分:1)

是的,正如Chacha指出的那样,请确保在loader类之外创建类的实例。由于您使用了系统通常始终需要的术语系统库,因此您可以使用__autoload magic function自动将它们全部包含在内。