PHP变量范围:通过引用将参数传递给匿名函数的默认值?

时间:2015-06-17 11:57:00

标签: php mysql

我正在尝试遍历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...

1 个答案:

答案 0 :(得分:2)

使用$res

use作为参考“引用”传递给您的回调
function runLoop($some_mysql_resource){
    $res = 'RESULTS: ';
    sqlEach($some_mysql_resource, function($sql) use (&$res) {
        $res .= $sql['id'].',';
    })
    return $res;
);

我假设$sql已在您的实际代码中的某处定义,因此将具有范围