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