在这里阅读有关匿名函数的php文档:http://php.net/manual/ro/functions.anonymous.php和关于闭包的内容:https://www.culttt.com/2013/03/25/what-are-php-lambdas-and-closures/和其他文章,我不知道在这里实际发生了什么:
//An array of names
$users = array("John", "Jane", "Sally", "Philip");
//Pass the array to array_walk
array_walk($users, function ($name) {
echo "Hello $name<br>";
});
// Returns
// -> Hello John
// -> Hello Jane
实际上... $ name变量指向什么?它在那段代码中代表什么?因为它似乎未定义。它从哪里出现的,范围是什么?另一件令人困惑的事情发生在这里:http://image.intervention.io/api/text
// draw transparent text
$img->text('foo', 0, 0, function($font) {
$font->color(array(255, 255, 255, 0.5))
});
什么是$ font? (我看到是一个对象),我想它是在'text()'方法中定义的,但是怎么办呢?如何传递即时变量作为对象的引用?谢谢!