Я получаю эту ошибку в строке 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++; } }
Вы не можете передать константу в 1, исправить – установить ее как переменную.
Изменить:
$password = str_replace($key, $value, $password, 1);
чтобы:
$var = 1 $password = str_replace($key, $value, $password, $var);
UPDATE: изменено, чтобы объявить переменную вне вызова метода из обратной связи в комментариях.
Прохождение 1
не имеет смысла. (Почему бы не пройти 42
или -5
?) 4-й параметр str_replace
используется только для передачи информации обратно вам. Функция вообще не использует исходное значение переменной. Итак, какова была бы точка (даже если разрешена) передачи чего-либо, если она не используется, и вы не собираетесь использовать новое значение, отправленное вам обратно? Этот параметр является необязательным; просто ничего не пропускайте.