Tên phương thức từ biến trong OOP PHP
Tương tự như tên các thuộc tính trong biến,
tên phương thức cũng có thể được lưu trữ.
Chúng ta hãy xem qua ví dụ. Giả sử chúng ta có lớp
User này với các getter của thuộc tính:
<?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;
}
}
?>
Hãy tạo một đối tượng của lớp này:
<?php
$user = new User('john', 'smit');
?>
Giả sử tên phương thức được lưu trong biến:
<?php
$method = 'getName';
?>
Hãy gọi phương thức với tên từ biến:
<?php
echo $user->$method(); // sẽ in ra 'john'
?>
Cho lớp sau:
<?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;
}
}
?>
Cho mảng:
<?php
$methods = [
'method1' => 'getName',
'method2' => 'getSalary',
'method3' => 'getPosition',
];
?>
Tạo một đối tượng của lớp Employee,
sau đó truy cập vào các thuộc tính của nó
thông qua các phần tử của mảng.