⊗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 ката берет, анткени объектер жөнөкөй жол менен сапка айланбайт.

Катаны жоюу үчүн, биз 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 файлдарын колдонобуз. Маалыматтарды иштетүү Маалыматты коргоо саясаты боюнча жүргүзүлөт.
баарын кабыл алуу ыңгайлаштыруу четке кагуу