Магічны метад toString у ААП у PHP

Першы магічны метад, які мы вывучым, называецца __toString. Ён выклікаецца пры спробе прывядзення асобніка класа да радку. Давайце разбярэмся, што гэта значыць. Хай у нас даны вось такі клас User:

User.php<?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;
    }
  }
?>

Давайце створым аб'ект гэтага класа:

index.php<?php
  $user = new User('john', 25);
?>

А цяпер паспрабуем вывесці створаны аб'ект праз echo:

index.php<?php
  $user = new User('john', 25);
  echo $user;
?>

Спроба зрабіць вывад аб'екта праз echo і ёсць пераўтварэнне да радку. У дадзеным выпадку PHP выдасць памылку, так як проста так аб'екты ў радок не пераўтвараюцца.

Для таго, каб прыбраць памылку, мы павінны ў вочным выглядзе сказаць PHP, што рабіць пры спробе пераўтварыць аб'ект у радок. Для гэтага і існуе магічны метад __toString.

Калі ў кодзе нашага класа зрабіць такі метад, то вынік гэтага метаду (тое, што ён верне праз return) і будзе радковым прадстаўленнем аб'екта.

Хай мы хочам, каб пры спробе вывесці аб'ект праз echo, выводзілася імя карыстальніка. Значыць зробім метад __toString і вернем у ім значэнне ўласцівасці name:

User.php<?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;
    }
  }
?>

Праверым:

index.php<?php
  $user = new User('john', 25);
  echo $user; // выведе 'john' - усё працуе!
?>
Задание 1

Зрабіце клас User, у якім будуць ўласцівасці name і surn. Зрабіце так, каб пры вывадзе аб'екта праз echo на экран выводзіўся радок з імем і прозвішчам карыстальніка.