⊗ppOpMgTS 87 of 107 menu

Կախարդական toString մեթոդը OOP-ում 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हिन्दीMagyarIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Մենք օգտագործում ենք cookie-ներ կայքի աշխատանքի, վերլուծության և անհատականացման համար։ Տվյալների մշակումը կատարվում է համաձայն Գաղտնիության քաղաքականության։
ընդունել բոլորը կարգավորել մերժել