比较操作返回false时不显示结果

时间:2013-04-12 01:01:14

标签: php

我正在尝试显示比较操作($a > $b)的结果,该结果不显示以下代码的任何内容,而操作($a < $b)显示结果1

我想知道为什么第一个操作不会返回0,因为它是false

<?php
    $a = 1;
    $b = 5;
    print ($a > $b);
    echo "Output";
    print ($a < $b);
?>

3 个答案:

答案 0 :(得分:3)

不幸的是,这是一个非常常见的误解。 0“是”不是falsefalsefalse,是一个布尔值。 00,是一个数字。 <{1}}在非类型安全比较中松散等于0

当您falseecho print时,它会被转换为字符串。 false强制转换为字符串为false,为空字符串。 ""强制转换为字符串为true,字符串为“1”。

阅读http://php.net/manual/en/language.types.string.php#language.types.string.casting

答案 1 :(得分:0)

整数比较($ a&lt; $ b)的返回类型为布尔,可以是 true false
print 的工作方式是: true 打印“1”, false 打印

答案 2 :(得分:0)

这是由于PHP处理错误值的方式。

echo ($a > $b)也不会输出任何内容。

要使语句输出0表示错误条件,您需要转换为整数:

print (int)($a > $b);