为什么将变量值更改为数组并纳入函数范围?的PHP

时间:2018-06-26 18:16:02

标签: php

为什么变量$替换为函数中的数组?

foreach ($rowset as $row)
{
    $replaced = str_replace('$uid',$this->bbcode_uid,$row['first_pass_replace']);
    echo $replaced; // this is a test of the variable error and it's ok
    $this->bbcodes[$row['bbcode_tag']] = array(
        'bbcode_id' => (int) $row['bbcode_id'],
        'regexp'    => array($row['first_pass_match'] => function($replaced){
                return $replaced; //this is not working 
            }
            )
        );
}

1 个答案:

答案 0 :(得分:0)

老实说,我不知道您要完成什么,但是要使其“起作用”,您需要:

...
'regexp' => array(
    $row['first_pass_match'] => function() use($replaced) {
        return $replaced;
    }
)
...

您可以使用use()来实现closure并将外部变量带入函数中,而无需将其作为参数显式传递。