⊗ppOpMgTS 87 of 107 menu

Den magiske metode toString i OOP i PHP

Den første magiske metode, som vi vil studere, hedder __toString. Den kaldes ved forsøg på at konvertere en instans af en klasse til en streng. Lad os finde ud af, hvad det betyder. Lad os sige, 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; } } ?>

Lad os oprette et objekt af denne klasse:

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

Og lad os nu prøve at vise det oprettede objekt via echo:

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

Forsøget på at udskrive et objekt via echo er netop konvertering til en streng. I dette tilfælde vil PHP give en fejl, fordi objekter ikke bare sådan kan konverteres til en streng.

For at fjerne fejlen skal vi eksplicit fortælle PHP, hvad den skal gøre, når der forsøges at konvertere et objekt til en streng. For det findes den magiske metode __toString.

Hvis vi laver en sådan metode i koden af vores klasse, så vil resultatet af denne metode (det vil sige, hvad den returnerer via return) være objektets strengrepræsentation.

Lad os sige, at vi ønsker, at når der forsøges at vise objektet via echo, så skal brugerens navn vises. Så vi laver metoden __toString og returnerer værdien af egenskaben name i den:

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

Lad os teste:

<?php $user = new User('john', 25); echo $user; // vil udskrive 'john' - det virker! ?>

Lav en klasse User, hvori der vil være egenskaber name og surn. Gør så, at når objektet udskrives via echo på skærmen, vil en streng med brugerens fornavn og efternavn blive vist.

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