переменная внутри переменной в функции PHP? - PullRequest
1 голос
/ 21 марта 2012

У меня есть следующая функция.

Проблема в том, что переменная $ lang будет варьироваться в зависимости от $this->setts['site_lang'];.Фактическая проблема заключается в следующем:

$condition_details['description_$lang']

(что не работает).Как получить это, чтобы отобразить

$condition_details['description_us']

или

$condition_details['description_fr']

в зависимости от настройки $ lang?

А вот полная функция:

function shipped_drop_down($box_name = 'item_shipped_via', $selected = null, $form_refresh = null)
{
    (string) $display_output = null;
    $lang = $this->setts['site_lang'];
    $sql_select_conditions = $this->query("SELECT id, description_".$lang." FROM " . DB_PREFIX . "advanced_shipping_carriers ORDER BY theorder,description_".$lang." ASC");
    $display_output = '<select name="' . $box_name . '" ' . (($form_refresh) ? 'onChange = "submit_form(' . $form_refresh . ', \'\')"' : '') . ' style="font-size:10px; width: 120px;"> ';
    while ($condition_details = $this->fetch_array($sql_select_conditions))
    {
        $display_output .= '<option value="' . $condition_details['id'] . '" ' . (($condition_details['id'] == $selected) ? 'selected' : '') . '>' . $condition_details['description_$lang'] . '</option> ';
    }
    $display_output .= '</select> ';
    return $display_output;
}

Ответы [ 4 ]

5 голосов
/ 21 марта 2012

Вы могли бы сделать

$condition_details['description_'.$lang]

или используйте "

$condition_details["description_$lang"]
2 голосов
/ 21 марта 2012

Вы можете хранить настройки lang в массивах, например так:

$lang['fr']['condition_details']

, чтобы вы могли использовать $lang[$selected_lang]['condition_details']

1 голос
/ 21 марта 2012

Используйте «двойные кавычки» вместо «одинарных кавычек». Таким образом, $lang будет проанализирован и заменен соответствующим значением.

0 голосов
/ 21 марта 2012

Используйте двойные кавычки, например:

$condition_details["description_$lang"]
...