Treýtlary treýtlarda ulanmak
Treýtlar, klaslara meňzeş şekilde, beýleki treýtlary hem ulanyp biler. Geliň bir mysal üsti bilen göreli. Bizde iki metodi bolan şeýle bir treýt bar bolsun:
<?php
trait Trait1
{
private function method1()
{
return 1;
}
private function method2()
{
return 2;
}
}
?>
Bizde ýene bir treýt hem bar bolsun:
<?php
trait Trait2
{
private function method3()
{
return 3;
}
}
?>
Geliň Trait2 treýtyna
Trait1 treýtyny birikdireli:
<?php
trait Trait2
{
use Trait1; // birinji treýty ulanýarys
private function method3()
{
return 3;
}
}
?>
Şeýle birikdirmeden soň, Trait2 treýty
öz metodlaryndan başga-da, Trait1 treýtynyň
metodlaryna hem eýe bolar. Muny barlap göreli: Test
klasyny düzeliň, oňa Trait2 treýtyny birikdiriň we
klasymyzda hem birinji, hem ikinji treýtlaryň metodlarynyň
peýda bolandygyna göz ýetireliň:
<?php
class Test
{
use Trait2; // ikinji treýty birikdirýäris
public function __construct()
{
echo $this->method1(); // birinji treýtyň metodu
echo $this->method2(); // birinji treýtyň metodu
echo $this->method3(); // ikinji treýtyň metodu
}
}
?>
Özbaşyna meniňki ýaly treýtlary düzüň we
olary Test klasyna birikdiriň.
Bu klasda getSum metodyny düzüň,
bu metod birikdirilen treýtlaryň metodlarynyň
jemi netijesini gaýtarmaly.