我正在尝试编写一些PHP代码来返回基于两个参数的翻译:整数翻译ID和双字母语言代码。
为此,我嵌套了switch语句。外部开关工作正常,但内部开关失败并且始终返回其默认值,无论$ lang参数采用哪个值。在下面的示例中,当$ lang =“de”时返回“Berne”。
我检查过,$ lang的值是正确的;它是。 将$ lang转换为(字符串)以确保它的类型正确。 尝试将括号内的内部开关括起来,并使用双引号而不是简单的引号。没有成功。这是我的代码:
<?php
switch($id) {
case 3:
{
switch((string)$lang) {
case 'de':
$v = 'Bern';
break;
case 'en':
$v = 'Berne';
break;
default:
$v = 'Berne';
}
}
break;
case 4:
{
switch($lang) {
case 'de':
$v = 'Zürich';
break;
case 'en':
$v = 'Zurich';
break;
default:
$v = 'Zurich';
}
}
break;
default:
{
switch($lang) {
case 'de':
$v = 'Genf';
break;
case 'en':
$v = 'Geneva';
break;
default:
$v = 'Genève';
}
}
break;
}
return $v;
?>
答案 0 :(得分:1)
//I don't what error you are getting when i am testing your code its working perfectly you can also see
<?php
$id = 4;
$lang="de";
switch($id) {
case 3:
{
switch((string)$lang) {
case 'de':
$v = 'Bern';
break;
case 'en':
$v = 'Berne';
break;
default:
$v = 'Berne';
}
}
break;
case 4:
{
switch($lang) {
case 'de':
$v = 'Zurich1';
break;
case 'en':
$v = 'Zurich2';
break;
default:
$v = 'Zurich3';
}
}
break;
default:
{
switch($lang) {
case 'de':
$v = 'Genf';
break;
case 'en':
$v = 'Geneva';
break;
default:
$v = 'Genève';
}
}
break;
}
echo $v;
?>