PHP OOP-daky treýt metodlaryna ygtyýar goragynyň üýtgemegi
Treýt içinde metodlar üçin islendik ygtyýar gorag üýtgeşigi
ulanmak bolýar (ýagny public, private
ýa-da protected). Zerur bolsa, şonda-da,
klas içinde bu üýtgeşigi başga birine üýtgedip bolýar.
Munun üçin use jisminde
açar söz as-dan soň
täze üýtgeşigi görkezmeli.
Mysal üstünde göreli. Bizde şeýle şahsy metoda eýe treýt bolsun:
<?php
trait TestTrait
{
private function method()
{
return '!!!';
}
}
?>
Treýtimyzy klasa birikdireli:
<?php
class Test
{
use TestTrait;
}
?>
Klasyň içinde metodu ýörite ýagdaýa üýtgedeliň:
<?php
class Test
{
use TestTrait {
TestTrait::method as public;
}
}
?>
Ýörite ýagdaýdaky metodynyň işini klas daşyndan barlalyň:
<?php
$test = new Test;
echo $test->method(); // '!!!' çykarar
?>