Trăsături în PHP

interfață php vs clasa abstractă
Metode statice în PHP OOP

În acest articol, veți învăța trăsăturile în PHP.

PHP – Care sunt trăsăturile?

În PHP, puteți moșteni de la o singură clasă părinte. Trăsăturile depășesc această limitare a PHP și vă permit să moșteniți mai multe comportamente.

O trăsătură este o clasă care conține atât metode abstracte, cât și metode non-abstracte. Diferitele clase pot folosi aceste metode în felul lor. Metodele de trăsătură pot fi publice, private sau protejate în ceea ce privește modificatorii lor de acces.

trăsătură cuvântul cheie declară o trăsătură. Priviți următoarea sintaxă a trăsăturilor în PHP.

<?php
trait FirstTrait {
  // some code...
}
?>

Pentru a folosi o trăsătură într-o clasă, utilizare este folosit un cuvânt cheie urmat de numele Trăsăturii. Sintaxa utilizării trăsăturii într-o clasă este dată mai jos.

<?php
class ABC {
  use FirstTrait;
}
?>

Exemplu de trăsătură în PHP

<?php
trait FirstTrait {
public function message1() {
    echo "PHP is fun! ";
  }
}

class Hello {
  use FirstTrait;
}

$hello = new Hello();
$hello->message1();
?>
  • În exemplul de mai sus, declarăm o trăsătură FirstTrait care conține o metodă mesaj1.
  • Ne creăm clasa Hei care folosesc FirstTrait.
  • Acum, când creăm obiectul clasei noastre, avem toate metodele trăsăturii utilizate de această clasă, cum ar fi metoda message1() din acest exemplu.

Utilizarea mai multor trăsături într-o clasă – PHP

După cum am menționat mai devreme, PHP nu acceptă moșteniri multiple prin care o clasă copil poate moșteni mai mult de o clasă părinte. Această caracteristică lipsă a OOP este depășită de trăsături în mare măsură. În exemplul următor, vom aplica mai multe trăsături în clase.

<?php
trait trait1 {
  public function message1() {
    echo "PHPis fun! ";
  }
}

trait Trait2{
  public function message2() {
    echo "Traits avoid redundancy of code!";
  }
}

class Hello {
  use Trait1;
}

class Welcome {
  use Trait2, Trait2;
}

$obj_1 = new Trait1();
$obj_1->message1();

$obj_2 = new Trait2();
$obj_2->message1();
$obj_2->message2();
?>
  • În exemplul de mai sus, creăm două trăsături numite Trait1 și Trait 2. Trait1 conține o singură metodă messge1 și Trait2 conține două metode, mesaj1 și mesaj2.
  • Pentru a folosi mai multe trăsături într-o clasă, separați fiecare trăsătură prin virgulă.
  • Acum, putem folosi o singură trăsătură sau ambele în clasele noastre. La fel ca impementarea pe care am dat-o la examen.

Referință la documentația oficială PHP 8 a trăsăturilor.

interfață php vs clasa abstractă
Metode statice în PHP OOP
en English
X
Derulaţi în sus