⊗ppOpMgTS 87 of 107 menu

Magiškas metodas toString OOP PHP

Pirmasis magiškas metodas, kurį išmoksime, vadinamas __toString. Jis iškviečiamas bandant paversti klasės egzempliorių į eilutę. Pažiūrėkime, ką tai reiškia. Tarkime, kad turime tokią klasę 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; } } ?>

Sukurkime šios klasės objektą:

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

Dabar pabandykime atspausdinti sukurtą objektą naudojant echo:

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

Bandymas išvesti objektą naudojant echo ir yra pavertimas į eilutę. Šiuo atveju PHP išmes klaidą, nes tiesiog taip objektai nepaverčiami į eilutę.

Kad pašalintume klaidą, turime aiškiai pasakyti PHP, ką daryti bandant paversti objektą į eilutę. Tam ir egzistuoja magiškas metodas __toString.

Jei mūsų klasės kode sukursime šį metodą, tada šio metodo rezultatas (tai, ką jis grąžina per return) ir bus objekto eilutinis atvaizdas.

Tarkime, kad norime, kad bandant išvesti objektą naudojant echo, būtų rodomas vartotojo vardas. Taigi, sukurkime metodą __toString ir jame grąžinkime savybės name reikšmę:

<?php class User { private $name; private $age; public function __construct($name, $age) { $this->name = $name; $this->age = $age; } // Įgyvendiname nurodytą metodą: public function __toString() { return $this->name; } public function getName() { return $this->name; } public function getAge() { return $this->age; } } ?>

Patikrinkime:

<?php $user = new User('john', 25); echo $user; // išves 'john' - viskas veikia! ?>

Sukurkite klasę User, kurioje bus savybės name ir surn. Padarykite taip, kad išvedus objektą per echo į ekraną būtų rodoma eilutė su vartotojo vardu ir pavarde.

Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti