2010-01-11 11 views
6

Nur für den Fall die Autoload-Sache wird nicht funktionieren, ich frage mich, ob es mit PHP in Ordnung ist, eine Klasse in eine Methode aufzunehmen?Kann ich eine Klasse in eine Methode aufnehmen?

Beispiel:

public method doSomething() { 
    include ('MyClass.php'); 
    $foo = MyClass::doAnotherThing(); 
} 

Antwort

3

Ja, das können Sie definitiv tun. In der Tat, das ist genau das, was das automatische Laden sowieso macht, da __autoload() selbst eine Funktion ist, und Sie verwenden es normalerweise, um nach Ihrer Klassendatei zu suchen.

Wenn Sie Ihre Klassendateien jedoch manuell hinzufügen, sollten Sie unbedingt require_once() statt include() oder require() verwenden, sonst erhalten Sie eine doppelte Deklaration der Klasse.

+1

+1 für Autoload und * _once() –

3

Ja, das funktioniert gut, und die Klasse im globalen Bereich zur Verfügung steht. Wenn die Datei anderen Code als eine Klasse enthält, wird dieser Code so ausgeführt, als wäre er innerhalb der Funktion.

1

Nun in diesem Fall möchten Sie wahrscheinlich eine oder require_once tun und wahrscheinlich testen, ob die class_exists, aber ja können Sie das tun.

Verwandte Themen