Создать переменную из константы

0

Я хочу опустить создание бесчисленных операторов if/else и вместо этого использовать предопределенные переменные (или константы).

DEFINE('LANG',$current_lang);

Он возвращает либо pl либо en. И теперь у меня есть две переменные:

$pl = getid('o-nas');
$en = pll_get_post($pl, 'en');

Как я могу напечатать тот, который я определил ранее с помощью LANG? Или есть лучшее решение для этого? Обратите внимание, что у меня будет несколько случаев таких вещей, но LANG всегда будет либо одним из этих двух.

Теги:

1 ответ

2
Лучший ответ

Синтаксис переменной переменной для этого случая:

define('FOO', 'bar');

$foo = 'baz';
$bar = 42;

echo ${FOO}; // 42

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

$content = [
    'en' => ..,
    'pl' => ..
];
echo $content[LANG];

Цель и синтаксис здесь гораздо более очевидны и читабельны.

  • 0
    Ничего себе, я никогда не видел это прежде ;-) Большое спасибо, это избавит меня от многих проблем! (На самом деле я видел это в руководстве, но до сих пор не совсем понял, так что спасибо!)
  • 0
    Не пропустите мое обновление.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню