将外部变量合并到匿名函数参数中
在编程中,经常需要访问在函数作用域之外定义的变量。当使用匿名函数作为参数时,此任务可能具有挑战性。
让我们考虑以下场景:函数 fetch() 用于处理数据库行并将它们作为参数传递给匿名函数。每行都可以使用 $r['title'] 访问,但需要将这些标题连接到一个变量中。
虽然可以使用全局修饰符,但这不是一个优雅的解决方案。更合适的方法是使用 use 关键字,如以下代码所示:
$result = ''; fetch("SELECT title FROM tbl", function($r) use (&$result) { $result .= $r['title']; });
use 关键字通过引用捕获外部变量 result (&$result) 并使其在匿名函数中可用.
但是请注意,use() 参数表现出早期绑定。这意味着它们在 lambda 函数声明时使用变量的值,而不是在调用时(后期绑定)。
以上是如何在 PHP 中访问匿名函数参数中的外部变量?的详细内容。更多信息请关注PHP中文网其他相关文章!