Het lezen van niet-bestaande eigenschappen in OOP in PHP

In het voorbeeld uit de vorige les pasten we de magie van de methode __get toe om toegang tot private eigenschappen op te vangen. In werkelijkheid is deze methode ook nuttig om toegang tot niet-bestaande eigenschappen op te vangen.

Laten we een praktisch voorbeeld bekijken. Stel we hebben een klasse User met een voornaam en achternaam, die publieke eigenschappen zijn:

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

Laten we ervoor zorgen dat het object van de klasse zich zo gedraagt alsof het ook een eigenschap full heeft, die de voornaam en achternaam van de gebruiker weergeeft. We gebruiken hiervoor onze magische methode __get:

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

Laten we testen:

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

Maak een klasse Date met publieke eigenschappen year, month en day. Maak met behulp van magie een eigenschap weekDay, dat de weekdag zal teruggeven die overeenkomt met de datum.