⊗ppOpMgTS 87 of 107 menu

Den magiske metoden toString i OOP i PHP

Den første magiske metoden vi skal lære om, heter __toString. Den kalles når man prøver å konvertere en instans av en klasse til en streng. La oss se nærmere på hva dette betyr. La oss si at vi har følgende klasse 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; } } ?>

La oss opprette et objekt av denne klassen:

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

Og nå prøver vi å vise det opprettede objektet via echo:

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

Forsøket på å gjengi et objekt via echo er nettopp en konvertering til streng. I dette tilfellet vil PHP gi en feil, fordi objekter ikke kan konverteres til en streng så enkelt.

For å fjerne feilen, må vi eksplisitt fortelle PHP hva den skal gjøre når den prøver å konvertere et objekt til en streng. For dette formålet finnes den magiske metoden __toString.

Hvis vi lager en slik metode i koden vår for klassen, vil resultatet av denne metoden (det vil si det den returnerer via return) være strengrepresentasjonen av objektet.

La oss si at vi ønsker at når vi prøver å vise objektet via echo, skal brukerens navn vises. Da lager vi metoden __toString og returnerer i den verdien fra egenskapen name:

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

La oss teste:

<?php $user = new User('john', 25); echo $user; // vil vise 'john' - alt fungerer! ?>

Lag en klasse User, der det skal være egenskaper name og surn. Gjør slik at når objektet vises via echo på skjermen, skal en streng med brukerens fornavn og etternavn vises.

Norsk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruker informasjonskapsler for nettstedets funksjonalitet, analyse og personalisering. Behandling av data foregår i henhold til Personvernerklæringen.
godta alle tilpass avvis