
匿名函数
|
77
$yesOrNo = function_exists(
function_name
);
例如 :
if (function_exists($which)) {
$which(); //
如果
$which
的值是
"first"
,函数
first()
将被调用
}
echo()
和
isset()
语言结构不能当作变量函数使用 :
$which = "echo";
$which("hello, world"); //
无法运行
匿名函数
某些
PHP
函数使用你所提供的函数来完成它们的部分工作。例如,
usort()
函数使用用
户自定义的比较函数对数组中的值进行排序。
尽管可以如前所示为了这样的目的而定义一个函数,但是这些函数是局部的和临时的。
为了反映回调函数的短暂特性,我们创建和使用一个
匿名函数
(也称为
闭包
)。
可以通过正常的语法来创建一个匿名函数,把它赋给一个变量或者直接传递它。示例
3-6
展示了一个使用
usort()
的示例。
示例3-6:匿名函数
$array = array("really long string here, boy", "this", "middling length",
"larger");
usort($array, function($a, $b) {
return strlen($a) - strlen($b);
});
print_r($array);
数组通过
usort()
使用匿名函数完成了按照字符长度进行的排序。匿名函数允许采取
use
语法使用在其封闭作用域内定义的变量,例如