⊗ppOpMgTS 87 of 107 menu

Magiczna metoda toString w OOP w PHP

Pierwsza magiczna metoda, którą przeanalizujemy, nazywa się __toString. Jest wywoływana przy próbie konwersji instancji klasy na ciąg znaków. Dowiedzmy się, co to oznacza. Załóżmy, że mamy taką 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; } } ?>

Stwórzmy obiekt tej klasy:

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

A teraz spróbujmy wyświetlić utworzony obiekt przez echo:

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

Próba wyświetlenia obiektu przez echo to właśnie konwersja na ciąg znaków. W tym przypadku PHP zwróci błąd, ponieważ obiekty nie są tak po prostu konwertowane na ciąg znaków.

Aby usunąć błąd, musimy wyraźnie powiedzieć PHP, co zrobić przy próbie konwersji obiektu na ciąg znaków. Do tego właśnie służy magiczna metoda __toString.

Jeśli w kodzie naszej klasy utworzymy taką metodę, to wynik tej metody (czyli to, co zwróci przez return) będzie reprezentacją obiektu jako ciągu znaków.

Załóżmy, że chcemy, aby przy próbie wyświetlenia obiektu przez echo, wyświetlała się nazwa użytkownika. Zatem utwórzmy metodę __toString i zwróćmy w niej wartość właściwości name:

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

Sprawdźmy:

<?php $user = new User('john', 25); echo $user; // wyświetli 'john' - wszystko działa! ?>

Utwórz klasę User, w której będą właściwości name i surn. Spowoduj, aby przy wyświetlaniu obiektu przez echo na ekranie wyświetlał się ciąg z imieniem i nazwiskiem użytkownika.

Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć