⊗ppOpMgTS 87 of 107 menu

Magická metóda toString v OOP v PHP

Prvá magická metóda, ktorú študujeme, sa volá __toString. Je volaná pri pokuse o prevedenie inštancie triedy na reťazec. Poďme zistiť, čo to znamená. Predpokladajme, že máme danú takúto triedu User:

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

Vytvorme objekt tejto triedy:

<?php $user = new User('john', 25); ?>

A teraz sa pokúsme vypísať vytvorený objekt cez echo:

<?php $user = new User('john', 25); echo $user; ?>

Pokus o vykonanie výstupu objektu cez echo je premena na reťazec. V tomto prípade PHP vypíše chybu, pretože jednoducho tak sa objekty na reťazec neprevedú.

Aby sme odstránili chybu, musíme explicitne povedať PHP, čo robiť pri pokuse o premenu objektu na reťazec. Pre to existuje magická metóda __toString.

Ak v kóde našej triedy vytvoríme takúto metódu, tak výsledok tejto metódy (teda to, čo vráti cez return) bude reťazcovým vyjadrením objektu.

Predpokladajme, že chceme, aby pri pokuse o výstup objektu cez echo, sa vypísalo meno používateľa. Takže urobme metódu __toString a vráťme v nej hodnotu vlastnosti name:

<?php class User { private $name; private $age; public function __construct($name, $age) { $this->name = $name; $this->age = $age; } // Realizujeme uvedenú metódu: public function __toString() { return $this->name; } public function getName() { return $this->name; } public function getAge() { return $this->age; } } ?>

Skontrolujme:

<?php $user = new User('john', 25); echo $user; // vypíše 'john' - všetko funguje! ?>

Vytvorte triedu User, v ktorej budú vlastnosti name a surn. Urobte tak, aby pri výpise objektu cez echo na obrazovku sa vypísal reťazec s menom a priezviskom používateľa.

Slovenčina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť