1

在javascript中我可以这样做:

$a= $b || $c

如果 $b 为 null 或为空,则 $a=$c,否则 $a=$b。

php中有类似的东西吗?

我试过:

$a=$b && $c

但我得到 $a=true 或 false,而不是 $b 或 $c 的值。

4

5 回答 5

2

那是因为通过应用“||” 对那些参数进行运算符,您正在制作一个逻辑表达式,它的答案是真/假。

您可以使用:

$a = $b?$b:$c;

从 PHP 5.3 开始,您可以使用缩短表达式:

$a = $b?:$c;

也一样。

于 2013-02-26T11:02:16.920 回答
1

Python 也有这个,但在 PHP 中逻辑运算符返回一个布尔值。

你可以$b ? $b : $c

或者您可以将$b条件替换为!empty($b),!is_null($b)等...但首先确保您了解它们的作用(例如0"0"都是空的,这不是您想要的)。我的猜测是你需要(isset($b) && $b !== "").

于 2013-02-26T10:49:53.200 回答
1

简洁版本:

$a = (empty($b) ? $c : $b)

长版:

if (empty($b)
    $a = $c;
else
    $a = $b;
于 2013-02-26T10:50:44.183 回答
1
$a = !empty($b) ? $b : $c;

也许不是您正在寻找的东西,但三元条件会做到这一点(这在大多数语言中都很常见)

健康)状况 ?案例真:案例假;

于 2013-02-26T10:51:21.087 回答
0
$a = null;
$b = 15;
$c = $a || $c = $b;
var_dump($c);
$c = $a or $c = $b;
var_dump($c);
于 2013-02-26T10:56:35.780 回答