=== 1 ===
字符串变量做函数名来调用函数。
当然了,更加"正常"的方法是使用create_function()函数创建函数.
还有所谓更正常,更优雅的方法(5.3之后可用):
附1:
更神奇的是这样的:
这有什么用处,我就不知道了....
字符串变量做函数名来调用函数。
$a = 'foo';
function foo() {
echo 'bar';
}
$a(); // ==> 'bar'
这个东西的用处在哪里呢?我倒是知道一个用处:当作函数指针来用,比如:
function caller($fun_name) {
$fun_name();
}
function foo() {
echo 'bar';
}
caller('foo'); // ==> 'bar'
注意哦,caller()接受的参数只是个字符串哦
当然了,更加"正常"的方法是使用create_function()函数创建函数.
还有所谓更正常,更优雅的方法(5.3之后可用):
<?php
caller(function () { // ==> 'foo bar'
echo 'foo bar';
});
?>
这就是传说中的匿名函数,很优雅好看.比如下面这个函数,是trim()函数的数组版本:
function trim_r(&$var) {
array_walk_recursive($var, function (&$var) { $var = trim($var); });
}
附1:
更神奇的是这样的:
$str = 'name';
$$str = 'Linghu Chong'; // $name = 'Linghu Chong'
echo "${$str}"; // ==> 'Linghu Chong'
这有什么用处,我就不知道了....