Eigenschaftsname aus Array in OOP in PHP
Schauen wir uns nun an, wie man auf eine Eigenschaft eines Objekts
über den Namen aus einem Array-Element zugreift.
Nehmen wir an, wir haben die folgende Klasse User:
<?php
class User
{
public $name;
public $surn;
public function __construct($name, $surn)
{
$this->name = $name;
$this->surn = $surn;
}
}
?>
Erstellen wir ein Objekt dieser Klasse:
<?php
$user = new User('john', 'smit');
?>
Nehmen wir an, ein Array mit Eigenschaften ist gegeben:
<?php
$props = ['name', 'surn'];
?>
Versuchen wir nun, den Wert der Eigenschaft auszugeben, die im nullten Element des Arrays gespeichert ist:
<?php
echo $user->$props[0]; // so wird es nicht funktionieren
?>
Damit ein solcher komplexer Eigenschaftsname funktioniert, muss er in geschweifte Klammern gesetzt werden, so wie hier:
<?php
echo $user->{$props[0]}; // gibt 'john' aus
?>
Gegeben ist die folgende Klasse:
<?php
class Employee
{
public $name;
public $salary;
public $position;
public function __construct($name, $salary, $position)
{
$this->name = $name;
$this->salary = $salary;
$this->position = $position;
}
}
?>
Gegeben ist das Array:
<?php
$arr = ['name', 'salary', 'position'];
?>
Erstellen Sie ein Objekt der Klasse Employee
und greifen Sie dann auf seine Eigenschaften
über die Elemente des Arrays zu.