2010-02-07 2 views
0

Je veux créer une "classe loader" qui nécessitera des fichiers sélectionnés.en utilisant require à l'intérieur d'une classe

donc je peux juste appeler par exemple. loader :: load ('systemLibraries,' applicationLibraries ').

donc à l'intérieur de cette méthode load() j'utiliserai require. mais j'ai essayé cela et il semble que les fichiers requis ne peuvent pas être utilisés en dehors de la classe.

comment puis-je le rendre globalement accessible?

Répondre

2

Cela devrait bien:

class Loader{ 

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

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

Étant donné que MyClass est "MyClass.php"

Ce d'autre part, ne fonctionnera pas

class Loader{ 

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

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

Si include.php regards comme ceci

$var = "Hi"; 

Vous ne pouvez pas le faire:

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

Comme il y a des questions de portée.

Vous allez avoir besoin de nous donner plus d'informations sur exactement auquel vous essayez d'accéder.

1

Oui, comme l'a souligné Chacha, assurez-vous de créer l'instance des classes en dehors de votre classe loader. Et puisque vous avez utilisé le terme bibliothèques système qui sont normalement utilisés par le système, vous pouvez l'utiliser tous automatiquement pour vous.

Questions connexes