Магічны метад toString у ААП у 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 на экран
выводзіўся радок з імем і прозвішчам карыстальніка.