2013-02-26 92 views
1

在javascript中我可以这样做:

$a= $b || $c 

如果$ b为null或空,则$ a = $ C,否则$ A = $ B。

在php中有这样的东西吗?

我想:

$a=$b && $c 

,但我得到$ a = true或false,而不是$ B或$ C值。

+2

'$ a =空($ b)? $ c:$ b;' – Federkun 2013-02-26 10:49:23

+0

是否保证'$ b'存在*? – deceze 2013-02-26 10:51:17

+2

请注意,在JavaScript中,'b ||如果是真的,则评价为“b”;如果“b”是假的,评价为“c”这涵盖了比“'b'为空或空”更多的情况 – Xophmeister 2013-02-26 10:53:32

回答

2

这是因为通过应用“||”运算符对这些参数进行逻辑表达,它的回答是真/假。

可以使用:

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

作为PHP 5.3的可以使用缩短的表达式:

$a = $b?:$c; 

其中不相同。

1

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

您可以$b ? $b : $c

或者你也可以更换$b条件与!empty($b)!is_null($b),等等...但首先要确保你理解what they do(例如0"0"都是空的,这是没有必要的,你想要什么)。我的猜测是你需要(isset($b) && $b !== "")

+4

既然PHP 5.3:'$ b?:$ c' – deceze 2013-02-26 10:50:42

1

短版:

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

龙版本:

if (empty($b) 
    $a = $c; 
else 
    $a = $b; 
1
$a = !empty($b) ? $b : $c; 

也许不正是你所寻找的,但三元条件会做(这是常见的大多数语言)

条件? case true:case false;

0
$a = null; 
$b = 15; 
$c = $a || $c = $b; 
var_dump($c); 
$c = $a or $c = $b; 
var_dump($c); 
+1

请注意 – Federkun 2013-02-26 11:00:21

+0

if left part == false(false,null,0或其他)或者exec right part(对不起我的英文)。当你尝试连接数据库时,它可能是有用的:$ a = DB :: connect()或die(“无法连接到数据库”); – brook 2013-02-26 11:02:06

相关问题