PHP 闭包的基本用法
示例
一个封闭的PHP相当于一个匿名函数,如的。没有名称的功能。即使从技术上讲这是不正确的,但闭包的行为仍与函数相同,只是具有一些额外的功能。
闭包不过是Closure类的对象,它是通过声明不带名称的函数而创建的。例如:
<?php $myClosure = function() { echo '你好,世界!'; }; $myClosure(); // Shows "你好,世界!"
请记住,这$myClosure是的一个实例,Closure这样您就可以真正使用它了(参见http://fr2.php.net/manual/en/class.closure.php)
您需要关闭的经典案例是必须为callable函数赋予a,例如usort。
这是一个根据每个人的同胞数对数组进行排序的示例:
<?php $data = [ [ 'name' => 'John', 'nbrOfSiblings' => 2, ], [ 'name' => 'Stan', 'nbrOfSiblings' => 1, ], [ 'name' => 'Tom', 'nbrOfSiblings' => 3, ] ]; usort($data, function($e1, $e2) { if ($e1['nbrOfSiblings'] == $e2['nbrOfSiblings']) { return 0; } return $e1['nbrOfSiblings'] < $e2['nbrOfSiblings'] ? -1 : 1; }); var_dump($data); //首先显示Stan,然后显示John,最后显示Tom