我知道你可以在这样的条件下分配一个变量:
if ($var = $foo)
但是我不需要在条件本身做任何事情,所以我经常留下空括号。如果$var
$foo
是true
,我可以简单地以其他方式分配$var
,而无需在以后做其他事情吗?
如果$foo
为$foo
但true
$foo
为false
做其他事情,我还可以将if ($var = !$foo) {
if ($var = !$bar) {
//Etc...
}
}
分配给{{1}}吗?像:
{{1}}
基本上我希望有更多的后备/默认值。
答案 0 :(得分:9)
@ chandresh_cool的建议是对的,但是为了允许多个可能性/后备,你必须嵌套三元表达式:
$var = ($foo == true) ? $foo:
($bar == true) ? $bar:
($fuzz == true) ? $fuzz:
$default;
注意:前3行以冒号结束而不是分号。
然而,更简单的解决方案是执行以下操作:
$var = ($foo||$bar||$fuzz...);
答案 1 :(得分:4)
相反,你可以像这样使用三元运算符
$var = ($foo == true)?$foo:"put here what you want";
答案 2 :(得分:4)
虽然这是一篇非常古老的帖子。伪造值的回退逻辑可以这样编码。
$var = $foo ?: $bar ?: "default";
在这种情况下,当$foo
是伪造值(如false,空字符串等)时,它将回退到$bar
,否则它将使用$foo
。
如果bar是伪造值,则它将回退到字符串default
。
请注意,这适用于伪造的值,而不仅仅是true
。
示例:
$foo = "";
$bar = null;
$var = $foo ?: $bar ?: "default";
$var
将包含文字default
,因为空字符串和null
被视为“虚假”值。
答案 3 :(得分:3)
您可以指定如下值:
$var = $foo;
也可以在if语句中设置它们,PHP将评估您刚刚分配的结果$ var。
我真的不明白你的问题,但你可以这样做:
if(!($var = $foo)){
//something else.
}