Eigenschapsnaam uit associatieve array in OOP in PHP
Laten we nu bekijken hoe we een eigenschap van een object kunnen benaderen op basis van de naam
uit een element van een associatieve array.
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 we een array met eigenschappen hebben:
<?php
$props = ['prop1' => 'name', 'prop2' => 'surn'];
?>
Laten we een eigenschap van het object benaderen, waarvan de naam is opgeslagen in een element van onze array:
<?php
echo $user->{$props['prop1']}; // geeft 'john' weer
?>
Gegeven de volgende 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;
}
}
?>
Gegeven de volgende array:
<?php
$arr = [
'prop1' => 'name',
'prop2' => 'salary',
'prop3' => 'position'
];
?>
Maak een object van de klasse Employee aan,
en benader vervolgens de eigenschappen
via de elementen van de array.