我正在为网站语言制作一个菜单,但是我觉得我这样做的方式不是最好的方式,以防我将来添加更多语言。 也许某人可以展示更好的榜样。 这是我所拥有的一部分。
if(isSet($_SESSION['lang'])) {
$lang = $_SESSION['lang'];
if ($lang == "en") {
echo '<li class="">EN
<ul>
<li class="submenu">RU</li>
<li class="submenu">ES</li>
<li class="submenu">GR</li>
<li class="submenu">DE</li>
</ul>
</li>';
}
if ($lang == "de") {
echo '<li class="">DE
<ul>
<li class="submenu">RU</li>
<li class="submenu">ES</li>
<li class="submenu">GR</li>
<li class="submenu">EN</li>
</ul>
</li>';
}
// and so on for every language..
}
可能会更好地做一些数组而不是foreach函数,但我不知道如何做x,x方式太混乱
答案 0 :(得分:0)
我认为这样的事情应该是@ help,我为语言定义了一个数组,只要你需要添加一种语言,你就可以在那里添加。
$lang = $_SESSION['lang'];
$languages = array ("de" => "DE", "ru" => "RU", "en" => "EN");
foreach ($languages as $key=>$val)
if ($lang == $key)
{
unset($languages[$key]);
$main_lang = $val;
}
echo "
<li class=\"\">$main_lang //main button
<ul> // sub menu";
foreach ($languages as $language)
echo "<li class=\"submenu\">$language</li>";
echo "
</ul>
</li>";
答案 1 :(得分:0)
如果你想要一个数组,可以创建一个函数,这个函数将获取语言作为参数并根据它显示选项:
<?php
function display ( $lang )
{ $arr = array( "en" => array( "RU","ES","GR","DE" ),
"de" => array( "RU","ES","GR","DE" )
);
echo '<li class="">' .
'<ul>';
foreach ( $arr[ $lang ] as $item ) // DISPLAY THE OPTIONS.
echo '<li class="submenu">' . $item . '</li>';
echo '</ul>
</li>';
}
display( "en" ); // DISPLAY OPTIONS FOR "EN".
display( "de" ); // DISPLAY OPTIONS FOR "DE".
?>
将来,您可以为阵列添加更多语言。
要测试它,请将以前的代码复制粘贴到文件中,将其另存为PHP并在浏览器中打开。