⊗ppOpTrAM 80 of 107 menu

წვდომის მოდიფიკატორები და ტრეიტები OOP-ში PHP-ში

ყურადღება უნდა მიაქციოთ იმას, რომ ტრეიტების გამოყენება - ეს არ არის მემკვიდრეობითობა. მემკვიდრეობითობისას პრივატური მეთოდები და თვისებები არ გადაეცემა მემკვიდრეობით.

ტრეიტებში კი საპირისპიროა: ტრეიტის გამოყენებად კლასში იქნება ხელმისაწვდომი როგორც პუბლიკური, ასევე პრივატური მეთოდები და თვისებები კლასის.

შევხედოთ მაგალითს. დავუშვათ, გვაქვს შემდეგი ტრეიტი პრივატური მეთოდით:

<?php trait TestTrait { private function method() { return '!!!'; } } ?>

მოდით, დავაკავშიროთ ჩვენი ტრეიტი კლასთან:

<?php class Test { use TestTrait; } new Test; ?>

გამოვიყენოთ ტრეიტის პრივატური მეთოდი:

<?php class Test { use TestTrait; // ვაკავშირებთ ტრეიტს public function __construct() { echo $this->method(); // გამოიტანს '!!!' } } new Test; ?>
azbydeenesfrkakkptruuz