如何正确嵌套三元运算符?

时间:2013-08-17 06:03:23

标签: php echo ternary-operator

我知道可以嵌套三元运算符,我想在这种情况下使用它们来节省时间(至少在将来)。

我有一个变量,它将包含四个值中的一个:

  • “管理员”
  • “编辑”
  • “wadmin”
  • “WUSER”

这些中的每一个都用于根据用户类型分别确定必要的密码长度,分别为16,12,8和8。

我希望PHP根据变量的内容回显每个数字,在本例中名为$match

到目前为止我所拥有的是:

echo $match == "admin" ? "16" : $match == "edit" ? "12" : "8";

但是这总是回应12.如何重写这个以正确回显“16”,“12”或“8”?

4 个答案:

答案 0 :(得分:3)

虽然它没有直接回答这个问题,但你可以完全避免使用嵌套三元组:

<?php
$minlen = array(
    "admin" => 16,
    "edit" => 12,
    "wadmin" => 8,
    "wuser" => 8,
);

// Example usage
$match = "admin";
echo $minlen[$match];
?>

答案 1 :(得分:1)

这样就可以了。

false条件括在括号/括号中

echo ($match == 'admin') ? '16' : (($match == 'edit') ? '12' : '8');

echo $match == 'admin' ? '16' : ($match == 'edit' ? '12' : '8');

答案 2 :(得分:0)

使用嵌套,希望对你有所帮助。你可以永远延长;)

echo $match == "admin" ? "16" : ($match == "edit" ? "12" : ($match == "wadmin" ? "8" : ($match == "wuser" ? "4" : "NONE")));

答案 3 :(得分:0)

使用括号: echo $match == "admin" ? "16" : ($match == "edit" ? "12" : "8");