PHP: “... les variables peuvent être passés par référence” dans str_replace()?

J'ai créé une fonction pour imprimer un prêt de l'instruction sql-chaîne avec les variables sur la base de ce que j'ai trouvé dans cette autre StackOverflow question.

Voici mon code:

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

Lorsque je l'exécute j'obtiens: Fatal error: Only variables can be passed by reference pour la ligne 3. Cependant quand j'utilise

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

pour la ligne 3, il fonctionne très bien.

Aucune idée pourquoi?

InformationsquelleAutor Dexter | 2011-04-30