⊗ppOpMgTS 87 of 107 menu

PHP да ООП да __toString магик методаси

Биз ўрганадиган биринчи магик метода __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 хато берadi, чунки объектлар ўзи-ўзича сатрга айланмайди.

Хатолиқни йўқотиш учун биз 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šuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeOʻzbekTiếng Việt
Биз веб-сайт ишлаши, таҳлил қилиш ва персоналлаштириш учун кукидан фойдаланамиз. Маълумотларни қайта ишлаш Махфийлик сиёсатига мувофиқ амалга оширилади.
ҳаммасини қабул қилиш мослаштириш рад этиш