Կախարդական 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-ի միջոցով արտածելիս էկրանին
արտածվի օգտագործողի անունն ու ազգանունը: