Php 如何正确嵌套三元运算符?
我知道嵌套三元运算符是可能的,我想在这种情况下使用它们来节省时间(至少在将来) 我有一个变量,它将保存四个值中的一个:Php 如何正确嵌套三元运算符?,php,echo,ternary-operator,Php,Echo,Ternary Operator,我知道嵌套三元运算符是可能的,我想在这种情况下使用它们来节省时间(至少在将来) 我有一个变量,它将保存四个值中的一个: “管理员” “编辑” “wadmin” “wuser” 其中每一个用于分别基于用户类型16、12、8和8来确定必要的密码长度 我希望PHP根据变量的内容来回显这些数字,在本例中命名为$match 到目前为止,我得到的是: echo $match == "admin" ? "16" : $match == "edit" ? "12" : "8"; 但这总是与12相呼应。我如
- “管理员”
- “编辑”
- “wadmin”
- “wuser”
$match
到目前为止,我得到的是:
echo $match == "admin" ? "16" : $match == "edit" ? "12" : "8";
但这总是与12相呼应。我如何重写它以正确地回显“16”、“12”或“8”?这样就可以了 将
false
条件括在括号/括号中
echo ($match == 'admin') ? '16' : (($match == 'edit') ? '12' : '8');
或
这样就行了 将
false
条件括在括号/括号中
echo ($match == 'admin') ? '16' : (($match == 'edit') ? '12' : '8');
或
使用嵌套,希望对您有所帮助。你可以永远延伸;)
使用嵌套,希望对您有所帮助。你可以永远延伸;) 使用论文:
echo$match==“管理员”?“16”:($match==“编辑”?“12”:“8”)代码>使用偏执:
echo$match==“管理员”?“16”:($match==“编辑”?“12”:“8”)代码>虽然它没有直接回答问题,但您可以完全避免嵌套三元:
<?php
$minlen = array(
"admin" => 16,
"edit" => 12,
"wadmin" => 8,
"wuser" => 8,
);
// Example usage
$match = "admin";
echo $minlen[$match];
?>
虽然它没有直接回答问题,但您可以完全避免嵌套三元:
<?php
$minlen = array(
"admin" => 16,
"edit" => 12,
"wadmin" => 8,
"wuser" => 8,
);
// Example usage
$match = "admin";
echo $minlen[$match];
?>
PHP的三元运算符已损坏。@elclanrs您是说这应该可以工作,即使它不工作?可能重复“可能嵌套三元运算符”-可能,但不是一个好主意,它只是使代码难以阅读-“我想在这种情况下使用它们来节省时间”-三元运算符比简单的if语句需要更多的时间来计划(因此不节省开发时间),并且不会比if语句运行得更快(因此不保存任何运行时)。我想是的,但它们仍然是我以前从未理解过的编程的一部分,现在我了解了!)PHP的三元运算符已损坏。@elclanrs所以你是说这应该可以工作,即使它不工作?可能重复“可能嵌套三元运算符”-可能,但不是一个好主意,它只是使代码难以读取-“我想在这种情况下使用它们来节省时间”-三元运算符比简单的if语句需要更多的时间来计划(因此不节省开发时间),并且不会比if语句运行得更快(因此不保存任何运行时)。我想是的,但它们仍然是我以前从未理解过的编程的一部分,现在我了解了!)耶!这也有道理。该死的括号!这是PHP特有的,因为与大多数其他语言不同,PHP从左到右读取三元运算符。在我看来,这样做也不值得,我会使用开关
或elseif
。耶!这也有道理。该死的括号!这是PHP特有的,因为与大多数其他语言不同,PHP从左到右读取三元运算符。在我看来,这样做也不值得,我会使用开关
或elseif
。这比使用三元运算符的原始方法要好得多。它避免了处理复杂的代码,并且允许非常容易地更改或添加值。这比使用三元运算符的原始方法要好得多。它避免了处理复杂的代码,并允许非常容易地更改或添加值。