我在第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++;
}
}
答案 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);
更新:更改为在注释中的反馈中声明方法调用之外的变量。