PHP的语法如下:$ expr = $ a || $ b

时间:2013-02-26 10:47:06

标签: php

在javascript中,我可以这样做:

$a= $b || $c

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

在php中有类似的东西吗?

我试过了:

$a=$b && $c

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

5 个答案:

答案 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);