Methode naam uit variabele in OOP in PHP
Vergelijkbaar met de namen van eigenschappen in een variabele
kunnen ook de namen van methoden worden opgeslagen. Laten we
een voorbeeld bekijken. Stel dat we de volgende
klas User hebben met getters voor eigenschappen:
<?php
class User
{
private $name;
private $surn;
public function __construct($name, $surn)
{
$this->name = $name;
$this->surn = $surn;
}
public function getName()
{
return $this->name;
}
public function getSurn()
{
return $this->surn;
}
}
?>
Laten we een object van deze klas maken:
<?php
$user = new User('john', 'smit');
?>
Stel dat in een variabele de naam van een methode is opgeslagen:
<?php
$method = 'getName';
?>
Laten we de methode aanroepen met de naam uit de variabele:
<?php
echo $user->$method(); // geeft 'john' weer
?>
Gegeven de volgende klas:
<?php
class Employee
{
private $name;
private $salary;
private $position;
public function __construct($name, $salary, $position)
{
$this->name = $name;
$this->salary = $salary;
$this->position = $position;
}
public function getName()
{
return $this->name;
}
public function getSalary()
{
return $this->salary;
}
public function getPosition()
{
return $this->position;
}
}
?>
Gegeven de volgende array:
<?php
$methods = [
'method1' => 'getName',
'method2' => 'getSalary',
'method3' => 'getPosition',
];
?>
Maak een object van de klas Employee,
en benader vervolgens de eigenschappen
via de elementen van de array.