PHP: только переменные могут передаваться по ссылке

Я получаю эту ошибку в строке 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 используется только для передачи информации обратно вам. Функция вообще не использует исходное значение переменной. Итак, какова была бы точка (даже если разрешена) передачи чего-либо, если она не используется, и вы не собираетесь использовать новое значение, отправленное вам обратно? Этот параметр является необязательным; просто ничего не пропускайте.