⊗ppOpMgTS 87 of 107 menu

Maaginen toString-metodi OOP:ssa PHP:ssä

Ensimmäinen maaginen metodi, jonka opimme, on nimeltään __toString. Se kutsutaan, kun luokan instanssia yritetään muuntaa merkkijonoksi. Selvitetään, mitä tämä tarkoittaa. Oletetaan, että meillä on tällainen User-luokka:

<?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; } } ?>

Luodaan olio tästä luokasta:

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

Yritetään nyt tulostaa luotu olio echo-komennolla:

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

Yritys tulostaa olio echo-komennolla on muunnos merkkijonoksi. Tässä tapauksessa PHP antaa virheen, koska olioita ei voi muuntaa merkkijonoon suoraan.

Poistaaksemme virheen, meidän on näytettävä PHP:lle, mitä tehdä, kun oliota yritetään muuntaa merkkijonoksi. Tätä varten on olemassa maaginen metodi __toString.

Jos luomme tällaisen metodin luokkaamme, niin tämän metodin tulos (eli se, mitä se palauttaa return-komennolla) on olion merkkijonoesitys.

Oletetaan, että haluamme, että kun oliota yritetään tulostaa echo-komennolla, tulostuu käyttäjän nimi. Eli teemme metodin __toString ja palautamme siinä name-ominaisuuden arvon:

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

Testataan:

<?php $user = new User('john', 25); echo $user; // tulostaa 'john' - kaikki toimii! ?>

Tee luokka User, jossa on ominaisuudet name ja surn. Tee niin, että kun oliota tulostetaan echo-komennolla näytölle, tulostuu merkkijono käyttäjän etu- ja sukunimellä.

Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää