使用匿名函数作为参数访问外部变量
该场景涉及一个方便处理数据库行的便捷函数。但是,当您需要将结果集中的所有标题连接到单个变量时,就会出现一个特定的要求。这就提出了一个问题:如何在不依赖使用 global 关键字这一不太优雅的方法的情况下实现这一目标。
一个解决方案在于使用闭包变量。具体来说,use 关键字允许闭包从父作用域继承变量。这与全局变量不同,全局变量在所有函数中都存在。
要实现此解决方案,可以按如下方式修改代码:
$result = ''; fetch("SELECT title FROM tbl", function($r) use (&$result) { $result .= $r['title']; });
通过添加 use (&$result) 到通过匿名函数,我们可以在函数内部引用和修改结果变量。 use 关键字有效地将结果变量的引用传递给闭包。
需要注意的是,这种方法涉及早期绑定,这意味着闭包在函数声明时使用变量的值,不在函数调用点(后期绑定)。为此目的使用闭包时要记住这一点。
以上是如何在 PHP 中的匿名函数中访问和修改外部变量?的详细内容。更多信息请关注PHP中文网其他相关文章!