Interfață în PHP - este o listă de metode care ar trebui să fie puse în aplicare în patrimoniul clasei de interfață. Vă atrag atenția, interfața - este doar o listă de metode.
Pentru a crea o interfață în PHP folosi interfața cuvânt. în spatele ei există un nume de interfață, și apoi în paranteze lista de metode.
Interfața poate fi implementată în clasă, dreptul de a utiliza acest cuvânt - „realizat“ și nu cuvântul „moștenit“.
Dacă doriți, în orice clasă pentru a pune în aplicare interfață, atunci folosește uneltele de cuvinte cheie. ceea ce se traduce în engleză ca „unelte“.
În cazul în care, în acest exemplu din clasa Boing elimina una dintre metodele, acest lucru va duce la eroare „Eroare fatală: Clasa Boing conține o metodă abstractă și, prin urmare, trebuie declarate abstracte sau pune în aplicare metodele rămase.“.
Boing Clasa poate conține și alte metode, dar este obligat să pună în aplicare metodele prevăzute în interfața.
Interfețe sunt similare cu clase abstracte în PHP. dar spre deosebire de aceste interfețe nu conțin metode cu organismele, și reprezintă doar o listă de metode care ar trebui să fie realzovan în clasa care implementează această interfață.
În interfața toate metodele sunt abstracte fapt, cuvântul cheie abstract când specificați metodele din interfața nu este utilizat.
Metode în interfețe poate fi doar cu o suprafață de vizibilitate publică. clase abstracte permit să declare un alt ID-uri de acces. Numele însuși vorbește despre interfețele pe care le-au creat interfața de gestionare, astfel încât metodele în care numai publice.
Interfețe în PHP, în plus față de lista de metode care pot conține, de asemenea, constante.
Ar trebui să fie conștienți de faptul că în PHP nu există nici o moștenire multiplă, adică o clasă poate moșteni numai dintr-o singură clasă. Dar, în PHP interfețe permit să facă punerea în aplicare multiple, adică o clasă poate implementa mai multe interfețe.
Iată un exemplu de implementare în Boing clasă două interfețe:
Vedem că interfețele implementate pur și simplu perecheslyat separate prin virgulă:
Dar beneficiile de interfețe nu numai în sensul că acestea definesc setul de metode publice care ar trebui să fie puse în aplicare de clase. Acest lucru este cu siguranță foarte util atunci când echipa de programatori lucrează la un proiect de mari dimensiuni.
La interfața are o altă proprietate utilă, atribuie tipul suplimentar.
Să extindem exemplul și de a folosi operatorul instanceof pentru a verifica tipul de obiect creat $ Boing777.
Vedem că, dacă condiția îndeplinită toate cele patru ori, iar apoi obiectul $ Boing777 se aplică la toate cele patru tipuri.
Filozofia de interfețe și clase abstracte
Știți deja că PHP are două tipuri de entități: interfețe și clase abstracte. Ele sunt foarte asemănătoare, dar, în plus față de diferențele tehnice, este necesar să se înțeleagă diferența în ideologia de utilizare a acestora.
Interfețele sunt concepute pentru a descrie acțiunile care pot face un obiect.
clasă abstractă descrie o clasă de entitate ca întreg, cum ar fi mașinile. Cu ajutorul unei clase abstracte, puteți specifica faptul că mașinile au o culoare, producător, capacitate, poate merge, zoom, etc. Și interfața este destinat numai pentru descrierea metodelor de control, adică, în cazul în care vehiculul este: pas pe gaz, frână, Honk, porniți luminile, etc.