真正返回1

时间:2013-03-25 04:24:56

标签: php

错误效果很好,但是当我返回true时,我得到一个true1为什么?

$num = 3;

function number($num)
{
    for($i = 2; $i < $num; $i++) {

        if($num % $i == 0) {
            echo("false");

            return false;
        }
    }
    echo("true");

    return true;
}

 echo number($num);

5 个答案:

答案 0 :(得分:1)

因为PHP TRUE与字符串格式中的1相同。但是,PHP处理数据类型的方式不同,这就是您需要使用===运算符来验证类型和数据的原因。

您进行的任何比较都应使用===运算符。

查看实际返回内容的一种方法是在输出中使用var_dump

答案 1 :(得分:1)

回显真实将永远给你1.尝试

var_dump($num);

这将显示变量的类型和值是什么。你会在那里看到它。

答案 2 :(得分:1)

当您尝试回显某个值时,它的值将转换为字符串。所以,你试图回应布尔值。好的,让我们阅读有关Converting to string

的文档
  

布尔值TRUE值转换为字符串“1”。 Boolean FALSE转换为“”(空字符串)。

答案 3 :(得分:0)

当您echo number($num); true被强制转换为字符串时出现'1'。

答案 4 :(得分:0)

在您的情况下,您隐式将布尔值true转换为整数,其值为1

要严格比较,您需要使用类型和值比较,即===运算符。

此外,var_dump()print_r()会显示变量的类型。