Giới thiệu
Nếu tên biến có cặp ngoặc đơn (có hoặc không có tham số) phía trước, PHP parser sẽ tìm function có tên tương ứng với giá trị biến và thực thi nó. Function như vậy gọi là variable function. Tính năng này hữu ích cho callbacks, function tables, v.v.
Variable functions không thể dùng với language constructs như include, require, echo v.v. Tuy có thể workaround bằng wrapper function.
Ví dụ
Variable function cơ bản
<?php
function hello() {
echo "Hello World";
}
$var = "hello";
$var();
?>
Kết quả
Hello World
Variable function với tham số
<?php
function add($x, $y) {
echo $x + $y;
}
$var = "add";
$var(10, 20);
?>
Kết quả
30
Tên function do user nhập
<?php
function add($x, $y) { echo $x + $y; }
function sub($x, $y) { echo $x - $y; }
$var = readline("enter function name: ");
$var(10, 20);
?>
Kết quả (nhập add)
enter function name: add 30
Variable method
Khái niệm variable function mở rộng sang method trong class:
<?php
class MyClass {
function welcome($name) {
echo "Welcome $name";
}
}
$obj = new MyClass();
$f = "welcome";
$obj->$f("Amar");
?>
Kết quả
Welcome Amar
Static method với variable method
<?php
class MyClass {
static function welcome($name) {
echo "Welcome $name";
}
}
$f = "welcome";
MyClass::$f("Amar");
?>
Kết quả
Welcome Amar