0

在其他编程语言(Python、Ruby、Scheme)中,我习惯于做类似的事情

$foo = $cat && $dog;
$bar = $fruit || $vegetable;

如果 $cat 为空,我希望 $foo 将分配给 $dog,如果 $fruit 不为空,则将 $bar 分配给 $fruit。我似乎记得因为在 PHP 中做这样的事情而被烧死,而且我从来没有确切地了解逻辑运算符如何处理非布尔操作数。有人可以解释或指出我正确的方向吗?我尝试阅读官方文档中的以下页面,但它不处理非布尔值:

http://us3.php.net/manual/en/language.operators.logical.php

4

2 回答 2

6

在 PHP 中,布尔比较的结果始终是布尔值,操作数被强制为布尔值。

http://us3.php.net/manual/en/language.types.boolean.php

解释哪些值在被强制时会变为真或假。

于 2009-07-16T00:32:17.597 回答
2

这对你有用吗?

$foo = $cat ?$猫:$狗;

第一个 $cat 将根据已知规则转换为布尔值。如果它是真的,那么 $foo 将是 $cat 否则它是 $dog。

于 2009-07-16T03:46:22.140 回答