Trasaturi în PHP
Trasaturi (trasaturi de limba engleza.) - un mecanism care să asigure reutilizarea codului în limbi care acceptă moștenirea unică. În Trasaturi php introdus în versiunea 5.4.0.
Ele permit dezvoltatorului să reutilizeze seturi de metode și proprietăți în mai multe clase independente.
Trasaturi ca o clasă, dar este imposibil de a crea o copie a trăsăturii. Se intenționează funcționalitatea grupului, care este apoi utilizat în clase diferite.
Exemplu de utilizare.
Aici HelloWorld trăsătură a crea o metodă publică sayHello (). Tot la fel ca într-o clasă obișnuită. Apoi, vom crea două clase. clasa GetInfo moștenește clasa NameMen pentru a avea acces la proprietățile și metodele sale prin utilizarea cuvântului cheie se extinde. În mod similar, această clasă are acces la proprietățile și metodele de utilizare a Trăsăturile folosesc directiva. urmat de numele trăsăturii.
Necesară pentru utilizarea în clasa Trăsăturile pot fi specificate, separate prin virgulă:
Metode de prioritate atunci când se lucrează cu trăsătură.
- membrii metodele actuale de clasă suprascriu de același nume în trasatura,
- membrii suprareglării trăsătură moștenită de clasă metode. Adică trăsătură are un avantaj față de clasa care moștenesc.
Conflicte. Trăsături de caracter
Erorile pot fi conectate atunci când mai multe Trăsăturile care conțin aceleași metode. Sau când o clasă moștenește de la o altă clasă de conectivitate trăsătură care a fost deja conectat în clasa părinte.
Pentru rezolvarea conflictului trebuie utilizat la conectarea operatorul insteadof Trăsăturile pentru a selecta cu precizie una dintre metodele de conflict.
În interiorul corpului «utilizarea» am folosit cuvântul cheie insteadof. din stânga care este specificată trăsătură, metoda care va fi utilizată și numele metodei, care sunt separate printr-un colon dublu. Pe partea dreaptă indică numele trăsăturii, metoda care ar trebui să fie înlocuit.
Dacă a doua metodă cu același nume (de la altă caracteristică) avem nevoie, de asemenea, este posibil să se utilizeze un nume alias folosind cuvântul cheie ca:
Metode statice și proprietăți
Folosit precum și în clasă:
Accesul la proprietățile clasei de bază.
Trăsătura de a avea acces la proprietățile clasei de bază, puteți utiliza $ pseudo- acest lucru.
Modificare permisiuni metode trăsătură.
În interiorul trăsătură putem folosi orice modificator de acces (public. Privat. Protejat) pentru metode. Dar, în afară de asta, este posibil să se schimbe clasa de acest modificator la altul. Pentru a face acest lucru, utilizați corpul ca atunci când cuvintele, puteți specifica un nou modificator.
Constant asociat cu trasatura.
Numele de clasă. Acest nume conține numele în spațiul de nume care a fost declarat clasa (de exemplu, Foo \ Bar). Rețineți că, deoarece PHP5.4 __CLASS__ funcționează, de asemenea, ca trăsătură. Atunci când este utilizat în metodele Trăsăturile __CLASS__ un nume de clasă în care sunt utilizate aceste metode.
Nume trăsătură. Acest nume conține numele în spațiul de nume care a fost declarat trăsătura (de exemplu, Foo \ Bar).
- Trasaturi sunt utilizate atunci când aveți nevoie pentru a introduce un set de metode în clase diferite, ele sunt oarecum similare cu comanda includ.
- Trasaturi sunt declarate folosind caracteristica de cuvinte cheie, în utilizarea la clasă a prescris ca trăsătură folosesc un cuvânt cheie.
- Într-o clasă, puteți folosi mai multe trăsături.
- Nu se poate crea o instanță separată a trăsăturii.
- Trasaturi pot fi utilizate împreună cu interfețele.
- nume conflicte Trasaturi eliminate prin insteadof cuvinte cheie, care înlocuiește metoda.
- Înlocuit prin metoda poate fi dat un alias folosind cuvântul cheie ca.
- Prin utilizarea ca un cuvânt cheie, puteți modifica, de asemenea, domeniul de aplicare a metodei din trasatura de clasă.
- Caracteristica poate utiliza $ pseudo- acest lucru pentru a avea acces la proprietăți ale clasei de bază.
- Caracteristica poate fi definit clase abstracte care trebuie să fie puse în aplicare în clase care folosesc aceste trăsături.
- Metodele trasatura pot fi accesate direct, folosind operatorul de colon dublu.