【问题标题】:session variable inside another variable - how?另一个变量中的会话变量 - 如何?
【发布时间】:2026-01-07 23:30:01
【问题描述】:

我有一个以不同语言显示国家/地区的脚本。例如,西班牙语中的“United Kingdom”将是“Reino Unido”等。每种语言都存储在不同的表中,例如西班牙语的“name_es”或英语的“name_en”。然后通过为每个用户存储的会话值选择正确的表。我有的是这样的:

    if ($countries_id)
    {
        $sql_select_countries = $this->query_silent("SELECT name_".$_SESSION['language']." as name FROM " . DB_PREFIX . "countries WHERE
            id IN (" . $countries_id . ")");

        if ($sql_select_countries)
        {
            while ($country_details = $this->fetch_array($sql_select_countries))
            {   
                $countries_array[] = $country_details['name'];
            }
        }
    }

请注意,问题行是这样的:

$countries_array[] = $country_details['name'];

我需要它像

$countries_array[] = $country_details['name_$_SESSION['language']'];

但我不知道正确的语法:(

【问题讨论】:

  • query_silent() - 我喜欢这个名字!

标签: php session variables syntax


【解决方案1】:

所以你想将字符串'name_'与存储在会话中的值连接起来?

$countries_array[] = $country_details['name_'.$_SESSION['language']];

我认为如果你添加一些语音标记和大括号,你可以这样做:

$countries_array[] = $country_details["name_{$_SESSION['language']}"];

【讨论】:

    【解决方案2】:
    $countries_array[] = $country_details[$_SESSION["language"]];
    

    【讨论】: