PHP OOP-дағы __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 арқылы
шығарғанда экранда
пайдаланушының аты мен тегінен тұратын жол шығуы үшін жасаңыз.