Variable functions
Variable functions là tính chất của PHP để chuyển string thành tên hàm và thực thi nó. Điều kiện là nội dung của string không phải các cấu trúc ngôn ngữ của PHP như echo
, print
, unset()
, isset()
, empty()
, include
và require
.
1
2
3
4
5
6
7
8
9
10
|
<?php
function foo() {
echo "Thực thi hàm foo()\n";
}
$a = 'foo';
// tương đương với foo();
($a)();
// tương đương với foo();
$a();
|
Hàm không tên (Anonymous functions)
Anonymous functions hay closures là hàm nhưng không có tên. Thường được sử dụng như tham số của hàm khác hoặc được gán vào biến.
Anonymous functions là tham số của hàm khác.
1
2
3
4
5
6
|
<?php
$array = ["d" => "lemon", "a" => "orange", "b" => "banana"];
array_walk($array, function ($item, $key) {
echo "$key: $item\n";
});
|
Anonymous functions được gán vào biến.
1
2
3
4
5
6
7
8
|
<?php
// biến $greet được gán với anonymos function
$greet = function($name) {
printf("Xin chào %s\r\n", $name);
};
$greet('thế giới'); // -> Xin chào thế giới
$greet('PHP'); // -> Xin chào PHP
|
Anonymous functions được gán vào biến và sử dụng biến bên ngoài hàm với từ khóa use
.
1
2
3
4
5
6
7
8
|
<?php
$hello = 'Xin chào';
$greet = function($name) use ($hello) {
printf("$hello %s\r\n", $name);
};
$greet('thế giới'); // -> Xin chào thế giới
$greet('PHP'); // -> Xin chào PHP
|