PHP: «… переменные могут быть переданы по ссылке» в str_replace ()?

Я создал функцию для вывода на печать строки-sql-инструкции с переменными в ней, на основе того, что я нашел в другом вопросе StackOverflow .

Вот мой код:

foreach($params as $idx => $param) {
    if ($idx == 0) continue;
    $sql = str_replace('?', "'" . $param . "'", $sql, 1);
}
printError($sql);

Когда я запускаю это, я получаю: Неустранимая ошибка: только переменные могут быть переданы по ссылке для строки 3. Однако, когда я использую

$ sql = preg_replace ( '/ \? /', "'". $ param. "'", $ sql, 1);

для строки 3 работает нормально.

Есть идеи, почему?

22
задан Community 23 May 2017 в 12:34
поделиться