PHP str_replace не заменяет всю строку?

Я работал над очень большой, сложной структурой, которую я пишу. Я использовал процесс, аналогичный этому, для двух других пакетов, и он работал безупречно, однако это str_replace доставляет мне неприятности

Это небольшой фрагмент гораздо большей функции. Функция, из которой взят этот конкретный фрагмент, заменяет значение по умолчанию в файле конфигурации на значение, зависящее от пользовательского ввода. Я не собираюсь включать все другие различные замены строк, которые происходят в этой функции, а также не буду подробно описывать сценарий, который захватывает содержимое файла конфигурации и записывает его. Проблема изолирована от этого фрагмента. Я знаю это, потому что этот фрагмент повторяет проблему в более крупной функции, когда он изолирован в тестовом файле.

Эквивалентный код …

<?php
$new_table_array = '$ecom_tables = [
"product" => "test1",
"promo" => "test2",
"records" => "test3"];';
$test = str_replace("$ecom_tables = [];", $new_table_array, '
$ecom_tables = [];
');
?>

Этот фрагмент отформатирован идентично реальной функции. Результатом этого фрагмента в функции и в файле теста является …

  $ecom_tables$ecom_tables = [
"product" => "test1",
"promo" => "test2",
"records" => "test3"];

Я просмотрел свои конкатенации и убедился, что все мои строковые цитаты находятся в правильном месте. Он проходит проверку синтаксиса, а также запускается при загрузке тестовой страницы, однако результат всегда неожиданный.

Почему str_replace заменить только часть строки, которую я указал, новым значением?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]