首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有类似“三值交换”的表达式?

是否有类似“三值交换”的表达式?
EN

Stack Overflow用户
提问于 2017-06-30 05:49:24
回答 3查看 1.1K关注 0票数 0

我试图使用PHP来识别变量$category,并将其中文名称回显到输入文本区域的值中。

代码语言:javascript
复制
<input type="text" value="<?php ...code...?>"/> 

如果我使用三元操作符,它看起来就像If-Else语句一样疯狂.$category变量重复多次。

代码语言:javascript
复制
echo (($category == "vegetable") ? "蔬菜" :
        (($category == "fruit") ? "水果" : 
           (($category == "meat") ? "肉類" :
              (($category == "seafood") ? "海鮮" :
                 (($category == "junkFood") ? "零食" : "")))));

但是,如果我使用开关语句,它会使我的代码太长.

代码语言:javascript
复制
switch ($category){
  case "vegetable":
    echo "蔬菜";
    break;
  case "fruit":
    echo "水果";
    break;
  case "meat":
    echo "肉類";
    break;
  case "seafood":
    echo "海鮮";
    break;
  case "junkFood":
    echo "零食";
}

是否还有其他三值操作符用于switch语句,以使我的代码更清晰?

或者有什么更好的方法来修改我的代码?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-06-30 05:56:24

您可以使用一个简单的关联数组:

代码语言:javascript
复制
$your_food = ["vegetable"=>"蔬菜", "fruit"=>"水果","meat"=>"肉類"...];

echo $your_food[$category];
票数 1
EN

Stack Overflow用户

发布于 2017-06-30 05:51:18

您可以使用像array('junkFood' => "零食", ...)这样的数组来使它看起来更干净。

例如:

代码语言:javascript
复制
$array = ['junkFood' => "零食", 'junkFood2' => "零食"];
echo $array['junkFood'];
票数 1
EN

Stack Overflow用户

发布于 2017-06-30 05:53:32

您可以使用一个返回值的开关来创建一个函数:

代码语言:javascript
复制
<input type="text" value="<?php echo translate($category);?>"/> 

<?php
function translate($category) {
   switch ($category){
   case "vegetable": return "蔬菜";
   case "fruit": return "水果";
   // ...
   }
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44839404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档