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