我正在尝试使用PHP来识别变量$ category,并将其中文名称回显到输入文本区域的值。
<input type="text" value="<?php ...code...?>"/>
如果我使用三元运算符,它看起来像If-Else语句一样疯狂...... $ category变量重复多次。
echo (($category == "vegetable") ? "蔬菜" :
(($category == "fruit") ? "水果" :
(($category == "meat") ? "肉類" :
(($category == "seafood") ? "海鮮" :
(($category == "junkFood") ? "零食" : "")))));
但是,如果我使用Switch语句,它会使我的代码太长......
switch ($category){
case "vegetable":
echo "蔬菜";
break;
case "fruit":
echo "水果";
break;
case "meat":
echo "肉類";
break;
case "seafood":
echo "海鮮";
break;
case "junkFood":
echo "零食";
}
是否还有其他三元运算符用于切换语句以使我的代码更清晰?
或者有更好的方法来修改我的代码吗?
答案 0 :(得分:1)
您可以使用array('junkFood' => "零食", ...)
等数组使其看起来更干净
例如
$array = ['junkFood' => "零食", 'junkFood2' => "零食"];
echo $array['junkFood'];
答案 1 :(得分:1)
您可以使用简单的关联数组:
$your_food = ["vegetable"=>"蔬菜", "fruit"=>"水果","meat"=>"肉類"...];
echo $your_food[$category];
答案 2 :(得分:0)
如果您只有key
=&gt; value
“关系”,然后使用普通数组:
$default = '???';
$map = [
"vegetable" => "蔬菜",
"fruit" => "水果",
...
];
echo array_key_exists($category, $map) ? $map[$category] : $default;
答案 3 :(得分:-1)
你可以使用一个可以重新调整值的开关来创建一个函数:
<input type="text" value="<?php echo translate($category);?>"/>
<?php
function translate($category) {
switch ($category){
case "vegetable": return "蔬菜";
case "fruit": return "水果";
// ...
}
}