⊗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हिन्दीMagyarՀայերենIndonesiaItaliano日本語Қазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
ვებსაიტის მუშაობის, ანალიტიკისა და პერსონალიზაციისთვის ვიყენებთ ქუქი-ფაილებს. მონაცემთა დამუშავება ხდება Კონფიდენციალურობის პოლიტიკის შესაბამისად.
ყველას მიღება პარამეტრები უარყოფა