⊗ppOpTrInr 77 of 107 menu

Treytlarin PHP-də OOP-də istifadəsi

Artıq bildiyiniz kimi, PHP-də bir neçə klasdan bir anda miras almaq mümkün deyil, yalnız birindən. Biz artıq bu problemin həllini keçmişdik: miras almaq əvəzinə digər klasların obyektlərindən istifadə etmək.

PHP-də başqa bir üsul da var. Bu üsul treytlər istifadə etməkdir. Treyt digər klaslara əlavə edilə bilən xassələr və metodlar toplusudur. Bu zaman treytin xassələri və metodları klas tərəfindən öz kimi qəbul edilir.

Treytin sintaksisi klasla eynidir, istisna olaraq treytin adı trait açar sözü ilə elan edilməlidir.

Treytin nümunəsini yaratmaq mümkün deyil - treytlər yalnız digər klaslara qoşulmaq üçün nəzərdə tutulub. Özü qoşulma use əmri ilə həyata keçirilir, ondan sonra boşluqla qoşulan treytin adı göstərilir. Bu əmr klasın əvvəlində yazılır.

Gəlin treytlərin tətbiqini praktiki misalda nəzərdən keçirək. Tutaq ki, bizdə Helper treyti verilib, hansı ki, nameage private xassələrini və onların getterlərini ehtiva edir:

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

Tutaq ki, bizdə həmçinin User klası var, onun konstruktorunda nameage xassələri təyin edilib:

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

Gəlin indi User klasımızın xassələri üçün getterlər əlavə edək. Ancaq onları birbaşa klasın özündə yazmayaq, sadəcə artıq bu metodların reallaşdığı Helper treytini qoşaq:

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

Treyt qoşulduqdan sonra klasımızda həmin treytin metodları və xassələri peyda olacaq. Bu zaman biz onlara klasın öz metodları və xassələri kimi müraciət edə biləcəyik:

<?php $user = new User('john', 30); echo $user->getName(); // 'john' cixardacaq echo $user->getAge(); // 30 cixardacaq ?>

name, age, population xassələri və onlar üçün getterlər olan City klasını reallaşdırın. Qoy klasımız öz kodunu qısaltmaq üçün artıq yaratdığımız Helper treytindən istifadə etsin.

Azərbaycan
AfrikaansБългарскиবাংলাБеларускаяČ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
Biz saytin işi, analitika və fərdiləşdirmə üçün cookie istifadə edirik. Məlumatların emalı Məxfilik Siyasəti əsasında həyata keçirilir.
hamısını qəbul et konfiqurasiya et rədd et