Eigenschapsnaam uit array in OOP in PHP
Laten we nu bekijken hoe we kunnen verwijzen
naar een eigenschap van een object op basis van de naam
uit een array-element.
Stel dat we de volgende klasse User hebben:
<?php
class User
{
public $name;
public $surn;
public function __construct($name, $surn)
{
$this->name = $name;
$this->surn = $surn;
}
}
?>
Laten we een object van deze klasse aanmaken:
<?php
$user = new User('john', 'smit');
?>
Stel dat er een array met eigenschappen is gegeven:
<?php
$props = ['name', 'surn'];
?>
Laten we proberen de waarde van de eigenschap uit te voeren, die is opgeslagen in het nulde element van de array:
<?php
echo $user->$props[0]; // zo werkt het niet
?>
Om een dergelijke complexe eigenschapsnaam te laten werken, moet deze tussen accolades worden gezet, zoals hier:
<?php
echo $user->{$props[0]}; // geeft 'john' weer
?>
De volgende klasse is gegeven:
<?php
class Employee
{
public $name;
public $salary;
public $position;
public function __construct($name, $salary, $position)
{
$this->name = $name;
$this->salary = $salary;
$this->position = $position;
}
}
?>
De volgende array is gegeven:
<?php
$arr = ['name', 'salary', 'position'];
?>
Maak een object van de klasse Employee aan,
en verwijs vervolgens naar zijn eigenschappen
via de elementen van de array.