PHP &&短路评估运算符

问题描述 投票:1回答:1

在JavaScript中,我可以这样做:

console.log( 'a' || 'b' ); // Prints 'a'

在PHP中,等效项是:

echo 'a' ?: 'b'; // Prints 'a'

在JavaScript中:

console.log( 'a' && 'b' ); // Prints 'b'

我的问题是,JavaScript与JavaScript的'a'&&'b'等效吗?

如果我在PHP中执行以下操作:

echo 'a' && 'b'; // Prints 1

如您所见,它将强制类型转换为布尔值1(true)。

什么是可以获取实际值的PHP运算符,例如JavaScript的&&?

P.S。我了解三元声明,请不要建议。

php short-circuiting
1个回答
0
投票

PHP返回true或false。但是您可以模拟JavaScript的r = a || b || c与:

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

关于'&&',类似:

$r = ($a && $a->foo) ? $a->foo->bar : null;

类似

$a = 100; 
$b = 50; 

// Check two condition using 
// AND operator 
if ($a == 100 and $b == 10) 
    echo "True"; 
else
    echo "False"; 
?> 
© www.soinside.com 2019 - 2024. All rights reserved.