2010-01-11 9 views
6

Solo per il caso la cosa del caricamento automatico non funzionerà, mi chiedo se con PHP sia soddisfacente includere una classe all'interno di un metodo?Posso includere una classe all'interno di un metodo?

Esempio:

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

risposta

3

Sì, si può sicuramente farlo. In effetti, questo è esattamente ciò che fa comunque il caricamento automatico, dal momento che lo __autoload() è di per sé una funzione e generalmente lo si utilizza per cercare il file di classe da caricare.

Se si includono manualmente i file di classe come quello, tuttavia, si vorrà sicuramente utilizzare require_once() anziché include() o require(), altrimenti si otterrà una dichiarazione duplicata della classe.

+1

+1 per autoload e * _once() –

3

Sì, questo funziona bene, e la classe sarà disponibile in ambito globale. Se il file contiene altro codice di una classe, tale codice verrà eseguito come se fosse all'interno della funzione, comunque.

1

Bene in tal caso, probabilmente si desidera eseguire un require o require_once e probabilmente verificare se lo class_exists, ma sì, è possibile farlo.

Problemi correlati