PHP'де ООП'до жок касиетти окуу

Мурунку сабакта келтирилген мисалда, биз __get методунун сыйкырдуулугун жеке касиеттерге кайрылууну кармоо үчүн колдондук. Чынында бул метод ошондой эле жок касиеттерге кайрылууну кармоо үчүн пайдалуу болушу мүмкүн.

Практикалык мисалды карап көрөлү. Бизде User класcы бар болсун, анын аты жана фамилиясы жарыя касиеттер болуп саналат:

User.php<?php
  class User
  {
    public $surn;
    public $name;
  }
?>

Келгиле, класcтын объектиси анда дагы full касиети бар сыяктуу өз-өзүн сезсин, ал колдонуучунун атын жана фамилиясын чыгарып берет. Бул үчүн биздин сыйкырдуу __get методубузду колдонолу:

User.php<?php
  class User
  {
    public $surname;
    public $name;
    public $patronymic;
    
    public function __get($property)
    {
      if ($property == 'full') {
        return $this->surn . ' ' . $this->name;
      }
    }
  }
?>

Текшерип көрөлү:

index.php<?php
  $user = new User;
  
  $user->surn = 'john';
  $user->name = 'smit';
  
  echo $user->full; // 'john smit' деп чыгарат
?>
Задание 1

Date класcын жасаңыз, анын жарыя касиеттери year, month жана day болсун. Сыйкырдуулукту колдонуп, weekDay касиетин жасаңыз, ал датага туура келген жума күнүн кайтарып берет.