Выводит переменную конструкцию вместо содержимого - PullRequest
0 голосов
/ 13 мая 2010

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

Для этого я загрузил и оценил новый файл (который использует ту же структуру и имена ключей), затем загрузил и оценил более старую версию, переписав новые непереведенные значения в массиве значениями, которые мы уже перевели.

Пока все хорошо!

Тем не менее, я хочу иметь возможность отобразить конструктор для этого нового объединенного массива, чтобы я мог вырезать и вставить его в новый файл перевода и выполнить работу (кроме завершения остальных переводов ..).

Код выглядит следующим образом (множество разных ключей, а не только индекс):

$lang["index"]["chart1_label1"] = "Subscribed";
$lang["index"]["chart1_label2"] = "Unsubscribed";

И старый ..

$lang["index"]["chart1_label1"] = "Subscrito";
$lang["index"]["chart1_label2"] = "Não subscrito";

После загрузки двух файлов я получаю объединенный массив $ lang, который затем хочу отобразить в той же форме, чтобы он мог использоваться проектом.

Однако, когда я делаю что-то подобное ..

foreach ($lang as $key => $value) { 
    if (is_array($value)) {
        foreach ($value as $key2 => $value2) {
            echo "$lang['".$key."']"; // ... etc etc
        }
    }
}

.. очевидно я получаю "ArrayIndex" и т. Д. Вместо "$ lang". Как вывести $ lang без его оценки? Как только это сработает, можете добавить остальные скобки и т. Д. (Я понимаю, что они отсутствуют), но просто хочу сначала заставить эту часть работать.

Если есть лучший способ сделать это, все уши тоже!

Спасибо.

редактирование:

Что я действительно искал, так это это :

"Примечание. В отличие от трех других синтаксисов, переменные и escape-последовательности для специальных символов не будут расширяться, если они встречаются в одиночных кавычках ."

Так что не нужно даже бежать. Может быть, однажды пригодится кому-то ... насчет слияния массивов, на странице руководства PHP есть функция рекурсивного слияния массивов для array_merge (), которая также пригодилась.

Спасибо всем, кто проголосовал! Люблю тебя тоже.

Ответы [ 2 ]

1 голос
/ 13 мая 2010

есть функция var_export(), но я не понимаю цели этого ужасного беспорядка.
Это все тоже ... руководство

почему бы не использовать gettext - отраслевой стандарт для мультиязычного сайта?

или хотя бы какой-нибудь другой формат, более надежный, чем обычный PHP?
Программный код не предназначен для автоматической записи.

1 голос
/ 13 мая 2010

Либо не используйте $: "\$lang" или используйте одинарные кавычки: '$lang'

Обратите внимание, что вам действительно не нужно публиковать целую страницу предыстории, если весь ваш вопрос сводится к "как вывести знак доллара в PHP"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...