⊗ppOpMgTS 87 of 107 menu

Magična metoda toString v OOP v PHP

Prva magična metoda, ki jo bomo preučili, se imenuje __toString. Pokliče se, ko poskušamo primerek razreda pretvoriti v niz. Poglejmo, kaj to pomeni. Recimo, da imamo podan razred 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; } } ?>

Ustvarimo objekt tega razreda:

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

Zdaj pa poskusimo ustvarjeni objekt izpisati s pomočjo echo:

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

Poskus izpisa objekta s pomočjo echo pomeni pretvorbo v niz. V tem primeru bo PHP vrnil napako, ker se preprosto objekti ne morejo pretvoriti v niz.

Da odstranimo napako, moramo eksplicitno povedati PHP-ju, kaj naj stori, ko poskuša objekt pretvoriti v niz. Za to obstaja magična metoda __toString.

Če v kodi našega razreda naredimo takšno metodo, bo rezultat te metode (torej tisto, kar vrne preko return) postal nizovni predstavitev objekta.

Recimo, da želimo, da se ob poskusu izpisa objekta s pomočjo echo, izpiše uporabnikovo ime. Torej naredimo metodo __toString in v njej vrnemo vrednost lastnosti name:

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

Preverimo:

<?php $user = new User('john', 25); echo $user; // izpiše 'john' - vse deluje! ?>

Naredite razred User, v katerem bodo lastnosti name in surn. Naredite tako, da se ob izpisu objekta s pomočjo echo na zaslon izpiše niz z imenom in priimkom uporabnika.

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
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni