Nella sua forma più comune, una interfaccia è un gruppo di metodi senza corpo. Il comportamento di una bicicletta, se specificato come un'interfaccia, potrebbe apparire come segue:
interface Bicicletta{
public function cambiaPedalata($nuovoValore);
public function cambiaMarcia($nuovoValore);
public function aumentaVelocità($incremento);
public function frena($decremento);
public function stampaStato();
}
public function cambiaPedalata($nuovoValore);
public function cambiaMarcia($nuovoValore);
public function aumentaVelocità($incremento);
public function frena($decremento);
public function stampaStato();
}
Per implementare questa interfaccia, il nome della propria classe va cambiato (con una particolare marca di bicicletta, per esempio, come BiciclettaAtala), e va utilizzata la parola chiave implements nella dichiarazione della classe:
class BiciclettaAtala implements BiciclettaBicycle {
// Il resto della classe implementata come nel post precedente
}
// Il resto della classe implementata come nel post precedente
}
Implementare un’interfaccia permette a una classe di divenire più formale riguardo al comportamento che promette di fornire. Le interfacce sono un contratto tra la classe e il mondo esterno, e il rispetto di questo contratto è reso obbligatorio dall'interprete PHP. Se la classe dichiara di implementare un'interfacci, tutti i metodi definiti da quell’interfaccia devono apparire nel suo codice sorgente prima che la definizione della classe sia interpretata da PHP.
Ecco cosa accade se si tenta di eseguire uno script in cui una classe non implementa tutti i metodi previsti dall'interfaccia:
![]() |
La classe BiciclettaAtala provoca un errore fatale se non implementa tutti i metodi previsti dall'interfaccia |