Lesen einer nicht vorhandenen Eigenschaft in OOP in PHP
Im Beispiel aus der vorherigen Lektion haben wir die Magie der Methode
__get
verwendet, um den Zugriff auf
private Eigenschaften abzufangen. Tatsächlich kann diese Methode
auch nützlich sein, um Zugriffe auf
nicht vorhandene Eigenschaften abzufangen.
Betrachten wir ein praktisches Beispiel. Angenommen,
wir haben eine Klasse User
mit einem Vornamen und
einem Nachnamen, die öffentliche
Eigenschaften sind:
<?php
class User
{
public $surn;
public $name;
}
?>
Lassen Sie uns den Objekt der Klasse so verhalten,
als ob es auch eine Eigenschaft
full
gäbe, die den Vor- und Nachnamen des Users ausgibt.
Verwenden wir dafür unsere magische Methode
__get
:
<?php
class User
{
public $surname;
public $name;
public $patronymic;
public function __get($property)
{
if ($property == 'full') {
return $this->surn . ' ' . $this->name;
}
}
}
?>
Prüfen wir:
<?php
$user = new User;
$user->surn = 'john';
$user->name = 'smit';
echo $user->full; // gibt 'john smit' aus
?>
Erstellen Sie eine Klasse Date
mit den öffentlichen Eigenschaften
year
, month
und day
.
Erstellen Sie mithilfe der Magie eine Eigenschaft weekDay
,
die den Wochentag zurückgibt, der dem
Datum entspricht.