Obbiettivo: Per sapere come possiamo utilizzare qualsiasi istanza di classe senza includere il file di classe. In generale, se vogliamo utilizzare l'istanza di qualsiasi classe, per prima cosa dobbiamo includere il file di classe con una qualsiasi delle funzioni 4:
- includere
- include_once
- richiedere
- require_once
Come sotto,
// incluso tutte le classi richiedono "classes / Testing1.php"; richiede "classes / Testing2.php"; // ora usando la funzionalità della classe $ testing1 = new Testing1; echo $ testing1-> a; $ testing2 = new Testing2; echo $ testing2-> a;
Ma se ci sono molte classi che vogliamo usare, dovremo includere tutti i file per poter creare l'istanza della classe. Supponiamo che se ci sono centinaia di classi dovremo includere tutto e ci vorrà molto tempo e spazio. Per superare questo, possiamo usare il seguente codice:
function auto_loader ($ class) {$ file = "classes / {$ class} .php"; // percorso di tutte le classi // questo controllerà se il file esiste se (is_file ($ file)) {// infine se il file esiste allora includerà il file include $ file; }} // Per registrare auto_loader () per chiamare questa funzione in modo sequenziale quando viene dichiarata una nuova classe spl_autoload_register ("auto_loader"); // ora usando la funzionalità della classe $ testing1 = new Testing1; echo $ testing1-> a; $ testing2 = new Testing2; echo $ testing2-> a;
Utilizzando il codice precedente, la classe richiesta verrà inclusa automaticamente durante l'utilizzo della classe. Non includerà altre classi che non sono richieste. Struttura del file:
classi index.php / Testing1.php classes / Testing2.php