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