Я пишу тривиальную систему шаблонов для запуска динамических запросов на сервере.str_replace неожиданное поведение
я первоначально имел следующий код в моем классе шаблонного:
$output = file_get_contents($this->file);
foreach ($this->values as $key => $value) {
$tagToReplace = "{$key}";
$output = str_replace($tagToReplace, $value, $output);
}
Я заметил, что струны не были заменены, как я ожидал (что «{}» символы были еще осталось на выходе).
Затем я изменил линию 'оскорбительный', чтобы:
$tagToReplace = '{'."$key".'}';
Затем он работал, как и ожидалось. Почему это изменение было необходимо? «{» В интерпретируемой строке имеет особое значение в PHP?
вы забыли анонимную функцию для обертывания ключей в {}! – meze