⊗ppOpMgTS 87 of 107 menu

Metoda magică toString în OOP în PHP

Prima metodă magică pe care o vom studia se numește __toString. Aceasta este apelată la încercarea de a converti o instanță de clasă în șir de caractere. Să înțelegem ce înseamnă acest lucru. Să presupunem că avem următoarea clasă 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; } } ?>

Să creăm un obiect al acestei clase:

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

Acum să încercăm să afișăm obiectul creat prin echo:

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

Încercarea de a afișa un obiect prin echo reprezintă conversia la șir de caractere. În acest caz PHP va afișa o eroare, deoarece simplu obiectele nu pot fi convertite în șir de caractere.

Pentru a elimina eroarea, trebuie să îi spunem explicit PHP-ului ce să facă atunci când încercăm să convertim un obiect în șir de caractere. Pentru aceasta există metoda magică __toString.

Dacă în codul clasei noastre creăm o astfel de metodă, atunci rezultatul acestei metode (adică ceea ce ea returnează prin return) va fi reprezentarea în șir de caractere a obiectului.

Să presupunem că vrem ca atunci când încercăm să afișăm obiectul prin echo, să se afișeze numele utilizatorului. Așadar, vom face metoda __toString și vom returna în ea valoarea proprietății name:

<?php class User { private $name; private $age; public function __construct($name, $age) { $this->name = $name; $this->age = $age; } // Implementăm metoda specificată: public function __toString() { return $this->name; } public function getName() { return $this->name; } public function getAge() { return $this->age; } } ?>

Să verificăm:

<?php $user = new User('john', 25); echo $user; // va afișa 'john' - totul funcționează! ?>

Creați o clasă User, în care vor fi proprietățile name și surn. Faceți astfel încât atunci când afișați obiectul prin echo pe ecran să se afișeze un șir cu numele și prenumele utilizatorului.

Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge