⊗ppOpTrInr 77 of 107 menu

Տրեյթները OOP-ում PHP-ում

Ինչպես արդեն գիտեք, PHP-ում հնարավոր չէ միանգամից բազմաթիվ դասերից ժառանգել, միայն մեկից: Նախկինում մենք արդեն անդրադարձել էինք այս խնդրի լուծմանը. ժառանգելու փոխարեն օգտագործել մի դասի օբյեկտներ մյուսների ներսում:

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; } } ?>

Եկեք այժմ ավելացնենք գետտերներ մեր դասի հատկությունների համար: Միայն չենք դրանք գրի դասի ներսում, այլ պարզապես կմիացնենք 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 ?>

Իրականացրեք City դասը name, age, population հատկություններով և դրանց համար գետտերներով: Թող մեր դասը իր կոդը կրճատելու համար օգտագործի արդեն մեր ստեղծած Helper տրեյթը:

Հայերեն
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Մենք օգտագործում ենք cookie-ներ կայքի աշխատանքի, վերլուծության և անհատականացման համար։ Տվյալների մշակումը կատարվում է համաձայն Գաղտնիության քաղաքականության։
ընդունել բոլորը կարգավորել մերժել