在javascript中,我可以这样做:
$a= $b || $c
如果$ b为空或空,则$ a = $ c,否则$ a = $ b。
在php中有类似的东西吗?
我试过了:
$a=$b && $c
但我得到$ a = true或false,而不是$ b或$ c的值。
答案 0 :(得分:2)
那是因为应用“||”对这些参数的运算符你正在做一个逻辑表达式,它的答案是真/假。
你可以使用:
$a = $b?$b:$c;
从PHP 5.3起,您可以使用缩短表达式:
$a = $b?:$c;
也是如此。
答案 1 :(得分:1)
Python也有这个,但在PHP逻辑运算符中返回一个布尔值。
你可以$b ? $b : $c
或者您可以将$b
条件替换为!empty($b)
,!is_null($b)
等...但首先要确保您理解what they do(例如0
并且"0"
都是空的,这不是你想要的。我的猜测是你需要(isset($b) && $b !== "")
。
答案 2 :(得分:1)
简短版本:
$a = (empty($b) ? $c : $b)
长版:
if (empty($b)
$a = $c;
else
$a = $b;
答案 3 :(得分:1)
$a = !empty($b) ? $b : $c;
也许并不是你想要的,但三元条件会这样做(在大多数语言中都很常见)
条件? case true:case false;
答案 4 :(得分:0)
$a = null;
$b = 15;
$c = $a || $c = $b;
var_dump($c);
$c = $a or $c = $b;
var_dump($c);