我正在尝试遍历 mysql 结果并在每条记录上运行匿名函数,但我在变量范围方面遇到了一些问题。该问题是更大流程的一部分,但我在这里创建了一个简化的示例,该示例简单地演示了该问题:
function runLoop($some_mysql_resource){
$res = 'RESULTS: ';
sqlEach($some_mysql_resource, function($sql){
$res .= $sql['id'].',';
})
return $res;
);
有没有办法在不改变逻辑流的情况下使上面的 runLoop 函数输出以下内容?
RESULTS: 1,2,3,4,etc...
使用
use
将$res
作为参数"通过引用"传递给您的回调
function runLoop($some_mysql_resource){
$res = 'RESULTS: ';
sqlEach($some_mysql_resource, function($sql) use (&$res) {
$res .= $sql['id'].',';
})
return $res;
);
我假设$sql
在您的实际代码中的某个地方定义,因此将具有范围