Membaca Sifat Tidak Wujud dalam OOP dalam PHP

Dalam contoh yang diberikan dalam pelajaran sebelumnya, kami menggunakan keajaiban kaedah __get untuk menangani akses kepada sifat peribadi. Sebenarnya, kaedah ini juga boleh berguna untuk menangani akses kepada sifat yang tidak wujud.

Mari lihat contoh praktikal. Katakan kita ada kelas User dengan nama dan nama keluarga, yang merupakan sifat awam:

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

Mari kita buat supaya objek kelas berkelakuan seolah-olah ia juga mempunyai sifat full, yang memaparkan nama dan nama keluarga pengguna. Kami akan menggunakan kaedah ajaib kami __get untuk ini:

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

Mari uji:

index.php<?php
  $user = new User;
  
  $user->surn = 'john';
  $user->name = 'smit';
  
  echo $user->full; // akan memaparkan 'john smit'
?>
Задание 1

Buat kelas Date dengan sifat awam year, month dan day. Dengan menggunakan keajaiban, buat sifat weekDay, yang akan mengembalikan hari dalam minggu, yang sepadan dengan tarikh.