Nombre del método desde una variable en POO en PHP
Por analogía con los nombres de propiedades en una variable,
también se pueden almacenar los nombres de los métodos. Veamos
un ejemplo. Supongamos que tenemos la siguiente
clase User con los getters de las propiedades:
<?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;
}
}
?>
Creemos un objeto de esta clase:
<?php
$user = new User('john', 'smit');
?>
Supongamos que en una variable se almacena el nombre de un método:
<?php
$method = 'getName';
?>
Llamemos al método con el nombre desde la variable:
<?php
echo $user->$method(); // mostrará 'john'
?>
Se da la siguiente clase:
<?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;
}
}
?>
Se da el siguiente array:
<?php
$methods = [
'method1' => 'getName',
'method2' => 'getSalary',
'method3' => 'getPosition',
];
?>
Cree un objeto de la clase Employee,
y luego acceda a sus propiedades
a través de los elementos del array.