PHP:只能通过引用传递变量

时间:2013-06-24 15:51:25

标签: php pass-by-reference

我在第57行收到此错误:$password = str_replace($key, $value, $password, 1);

据我所知,我只传递变量。以下是更多背景信息:

$replace_count = 0;
foreach($replacables as $key => $value)
{
    if($replace_count >= 2)
        break;
    if(strpos($password, $key) !== false)
    {
        $password = str_replace($key, $value, $password, 1);
        $replace_count++;
    }

}

2 个答案:

答案 0 :(得分:7)

传递1毫无意义。 (为什么不通过42-5?)str_replace的第4个参数仅 用于将信息传递给您。该函数不使用变量的原始值。那么,如果没有使用,那么传递内容的重点是什么(即使是允许的话),并且你不会使用发回给你的新值?该参数是可选的;只是不要传递任何东西。

答案 1 :(得分:6)

你不能传递常数1,修复就是将其设置为变量。

变化:

$password = str_replace($key, $value, $password, 1);

为:

$var = 1
$password = str_replace($key, $value, $password, $var);

更新:更改为在注释中的反馈中声明方法调用之外的变量。