⊗ppOpTrAMt 83 of 107 menu

PHP-də OOP-də traitlərin abstrakt metodları

Traitlərdə bəzi metodları abstrakt elan etmək olar. Bu halda, bu traitdən istifadə edən sinif belə bir metodu mütləq həyata keçirməlidir. Eyni zamanda, traitin abstrakt metodları gizli (private) ola bilməz.

Gəlin bir nümunəyə baxaq. Tutaq ki, bizim belə bir traitimiz var:

<?php trait TestTrait { public function method1() { return 1; } abstract public function method2(); } ?>

Tutaq ki, bizim traitimiz Test sinfi tərəfindən istifadə olunur. Traitdə abstrakt metodun olması proqramçını onu sinifdə həyata keçirməyə məcbur edəcək, əks halda PHP xətası baş verəcək.

Gəlin Test sinfini method2 metodu ilə birlikdə yaradaq:

<?php class Test { use TestTrait; // traitdən istifadə edirik // Abstrakt metodu həyata keçiririk: public function method2() { return 2; } } new Test; ?>

Mənim TestTrait traitimin kodunu və mənim Test sinfimin kodunu köçürün. Sinifdən method2 metodunu silin. Onun realizasiyasının olmamasının PHP xətasına səbəb olacağına əmin olun.

azbydeenesfrkakkptruuz