在php中,逻辑运算符如何与非布尔运算符一起使用?

时间:2009-07-16 00:28:45

标签: php logical-operators

在其他编程语言(Python,Ruby,Scheme)中,我习惯于做

之类的事情
$foo = $cat && $dog;
$bar = $fruit || $vegetable;

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

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

2 个答案:

答案 0 :(得分:6)

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

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

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

答案 1 :(得分:2)

这对你有用吗?

$ foo = $ cat? $ cat:$ dog;

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