⊗ppOpTrInr 77 of 107 menu

Treiti OOP PHP

Kā jūs jau zināt, PHP nevar mantot no vairākām klasēm uzreiz, tikai no vienas. Iepriekš mēs jau esam apskatījuši šīs problēmas risinājumu: mantojuma vietā izmantot objektus vienu klasi citās.

PHP ir arī cits veids. Tas ir treitu izmantošana. Treits reprezentē īpašību un metožu kopumu, ko var iekļaut citā klasē. Šajā gadījumā īpašības un treita metodes tiks uztvertas ar klasi it kā savas.

Treita sintakse ir tāda pati kā klasei, izņemot to, ka treita vārds ir jādefinē izmantojot atslēgvārdu trait.

Nevar izveidot treita instances - treiti ir paredzēti tikai pievienošanai citām klasēm. Pašu pievienošanu veic ar komandas use palīdzību, pēc kuras caur atstarpi tiek norādīts pievienojamā treita vārds. Šī komanda tiek rakstīta klases sākumā.

Apskatīsim treitu izmantošanu praktiskā piemērā. Pieņemsim, ka mums ir dots šāds treits Helper, kas satur privātās īpašības name un age, kā arī to getterus:

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

Pieņemsim, ka mums ir arī šāda klase User, kuras konstruktorā tiek iestatītas īpašības name un age:

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

Tagad pievienosim getterus īpašībām mūsu klases User. Tikai nerakstīsim tos pašā klasē, bet vienkārši pievienosim treitu Helper, kurā šīs metodes jau ir realizētas:

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

Pēc treita pievienošanas mūsu klasē parādīsies šī treita metodes un īpašības. Šajā gadījumā mēs pie tiem piekļūsim it kā pie pašas klases metodēm un īpašībām:

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

Realizējiet klasi City ar īpašībām name, age, population un getteriem tiem. Lai mūsu klase sava koda saīsināšanai izmantotu jau mūsu izveidoto treitu Helper.

Latviešu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mēs izmantojam sīkdatnes, lai nodrošinātu vietnes darbību, analīti un personalizāciju. Datu apstrāde notiek saskaņā ar Konfidencialitātes politiku.
pieņemt visus iestatīt noraidīt