⊗ppOpTrInr 77 of 107 menu

PHP-тегі ООП-да трейттар

Сіз білетіндей, PHP-те бірден бірнеше кластан мұрагерлік ету мүмкін емес, тек біреуінен ғана. Бұған дейін біз бұл мәселені шешуді өткенбіз: mұрагерлік етудің орнына басқа кластардың объектілерін пайдалану.

PHP-та басқа тәсіл де бар. Ол трейттарды пайдаланудан тұрады. Трейт басқа класқа қосылуы мүмкін болатын қасиеттер мен әдістер жиынтығын білдіреді. Бұл ретте трейттің қасиеттері мен әдістері класқа өздерінікі сияқты қабылданады.

Трейттің синтаксисі класстыкі сияқты, тек трейт атауын trait кілт сөзімен жариялау қажет.

Трейттің данасын жасау мүмкін емес - трейттар тек басқа класстарға қосылу үшін арналған. Қосылудың өзі use командасы арқылы жүзеге асырылады, оның артына бос орынмен қосылатын трейттің атауы көрсетіледі. Бұл команда класстың басында жазылады.

Трейттарды қолдануды тәжірибелік мысалда қарастырайық. Бізде Helper деген трейт бар делік, ол name және age жеке қасиеттерін және олардың геттерлерін қамтиды:

<?php trait Helper { private $name; private $age; public function getName() { return $this->name; } public function getAge() { return $this->age; } } ?>

Сондай-ақ бізде User деген клас бар делік, оның конструкторында name және age қасиеттері берілген:

<?php class User { public function __construct($name, $age) { $this->name = $name; $this->age = $age; } } ?>

Енді User класымыздың қасиеттеріне геттерлер қосамыз. Тек оларды кластың өзінде жазбай-ақ, бізде бұл әдістер іске асырылған Helper трейтін қосамыз:

<?php class User { use Helper; // трейтті қосамыз public function __construct($name, $age) { $this->name = $name; $this->age = $age; } } ?>

Трейтті қосқаннан кейін біздің класта сол трейттің әдістері мен қасиеттері пайда болады. Бұл ретте біз оларға кластың өз әдістері мен қасиеттері сияқты қараймыз:

<?php $user = new User('john', 30); echo $user->getName(); // шығарады 'john' echo $user->getAge(); // шығарады 30 ?>

name, age, population қасиеттері және оларға геттерлері бар City класын іске асырыңыз. Біздің клас өз кодын қысқарту үшін біздің жасаған Helper трейтімізді пайдалансын.

Қазақ
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართული한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Біз сайттың жұмысы, аналитика және персонализация үшін cookie файлдарын қолданамыз. Деректерді өңдеу Құпиялылық саясаты бойынша жүреді.
барлығын қабылдау баптау қабылдамау