⊗ppOpMgTS 87 of 107 menu

Den magiska metoden toString i OOP i PHP

Den första magiska metoden som vi kommer att studera heter __toString. Den anropas när man försöker konvertera en instans av en klass till en sträng. Låt oss ta reda på vad det betyder. Låt oss säga att vi har följande klass 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; } } ?>

Låt oss skapa ett objekt av denna klass:

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

Och låt oss nu försöka skriva ut det skapade objektet via echo:

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

Försöket att göra en utskrift av objektet via echo är just en konvertering till sträng. I detta fall kommer PHP att ge ett felmeddelande, eftersom objekt inte kan konverteras till en sträng sådär.

För att få bort felet måste vi uttryckligen säga till PHP vad som ska göras vid försök att konvertera ett objekt till en sträng. För detta finns den magiska metoden __toString.

Om vi skapar en sådan metod i vår klasskod, blir resultatet av denna metod (det vill säga det som den returnerar via return) objektets strängrepresentation.

Låt oss säga att vi vill att vid försök att skriva ut objektet via echo, så ska användarens namn skrivas ut. Då skapar vi metoden __toString och returnerar i den värdet på egenskapen name:

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

Låt oss testa:

<?php $user = new User('john', 25); echo $user; // skriver ut 'john' - allt fungerar! ?>

Skapa klassen User, där det finns egenskaperna name och surn. Gör så att när objektet skrivs ut via echo på skärmen så skrivs en sträng ut med användarens förnamn och efternamn.

Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa