⊗ppOpMgTS 87 of 107 menu

Магичен метод toString во ООП во PHP

Првиот магичен метод кој ќе го изучуваме, се вика __toString. Тој се повикува при обид за претворање на инстанца од класата во стринг. Ајде да разбереме, што значи ова. Да претпоставиме дека имаме дадена вакава класа 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; } } ?>

Ајде да креираме објект од оваа класа:

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

А сега да се обидеме да го испечатиме креираниот објект преку echo:

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

Обидот за печатење на објектот преку echo е претворање во стринг. Во овој случај PHP ќе даде грешка, бидејќи едноставно така објектите не се претвораат во стринг.

За да ја отстраниме грешката, мораме експлицитно да му кажеме на PHP, што да прави при обид за претворање на објект во стринг. За ова постои магичниот метод __toString.

Ако во кодот на нашата класа направиме таков метод, тогаш резултатот од овој метод (односно она што тој ќе го врати преку return) ќе биде стринг репрезентација на објектот.

Да речеме дека сакаме, при обид за печатење на објектот преку echo, да се испечати името на корисникот. Значи, ќе направиме метод __toString и ќе ја вратиме во него вредноста на својството name:

<?php class User { private $name; private $age; public function __construct($name, $age) { $this->name = $name; $this->age = $age; } // Го имплементираме наведениот метод: public function __toString() { return $this->name; } public function getName() { return $this->name; } public function getAge() { return $this->age; } } ?>

Да го провериме:

<?php $user = new User('john', 25); echo $user; // ќе испечати 'john' - сè работи! ?>

Направете класа User, во која ќе има својства name и surn. Направете така што при печатење на објектот преку echo на екран да се печати стринг со името и презимето на корисникот.

Македонски
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние користиме колачиња за работата на веб-страната, анализа и персонализација. Обработката на податоци се врши во согласност со Политиката за приватност.
прифати ги сите прилагоди одбиј