0

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

我有一个变量,它将保存四个值之一:

  • “行政”
  • “编辑”
  • “管理员”
  • “乌瑟”

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

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

我到目前为止是这样的:

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

但这总是回显 12。如何重写它以正确回显“16”、“12”或“8”?

4

4 回答 4

4

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

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

// Example usage
$match = "admin";
echo $minlen[$match];
?>
于 2013-08-17T06:22:33.533 回答
1

这会成功的。

false条件括在括号/括号中

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

或者

echo $match == 'admin' ? '16' : ($match == 'edit' ? '12' : '8');
于 2013-08-17T06:08:39.360 回答
0

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

echo $match == "admin" ? "16" : ($match == "edit" ? "12" : ($match == "wadmin" ? "8" : ($match == "wuser" ? "4" : "NONE")));
于 2013-08-17T06:09:52.687 回答
0

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

于 2013-08-17T06:10:14.147 回答