2010-02-07 8 views
0

선택한 파일이 필요한 "로더 클래스"를 만들고 싶습니다.using using a class

그래서 저는 전화를 할 수 있습니다. 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

예, Chacha가 지적했듯이 클래스의 인스턴스를 로더 클래스 외부에 만들어야합니다. 일반적으로 시스템에서 항상 필요로하는 시스템 라이브러리을 사용 했으므로 __autoload magic function을 사용하면 자동으로 모두 포함됩니다.