函数在返回true或false时有效,但在返回0或1时不起作用

时间:2013-10-06 19:46:30

标签: php

function date2_in_the_past($day, $month, $year)
{
    $datestring = $year . "-" . $month . "-" . $day;
    if (date ('Y-m-d', strtotime($datestring)) < date('Y-m-d', strtotime("now",time()))) {
        $b = 1;  **// I want $b = true**;
    }
    else { $b = 0; **// I want $b = false;** }

    return $b;
}
//echo date2_in_the_past(24, 10, 2013);     // returns 0

但它不会返回$b = true$b = false;的任何内容。知道如何让函数工作分配$b到布尔值而不是写'==1''==0'

3 个答案:

答案 0 :(得分:2)

问题出在您评论的回音中。如果你想检查变量是真还是假,你应该使用

var_dump($variable)

而不是

echo $variable;

答案 1 :(得分:0)

您可以将变量初始化为bool:

 function date2_in_the_past($day, $month, $year)
    {
     $datestring = $year . "-" . $month . "-" . $day;
     if (date ('Y-m-d', strtotime($datestring)) < date('Y-m-d', strtotime("now",time()))) {
        bool $b = true;  **// I want $b = true**;
    }
    else { bool $b = false; **// I want $b = false;** }

    return $b;
}

答案 2 :(得分:0)

  • 返回true或false并使用运算符===和!==来测试返回值
  • 当您在浏览器上回显布尔变量时,您看不到真或假,您将看到1表示true而没有false表示打印它将boolean写为字符串,如下所示:

    $ var = false; if($ var === true)     echo'true'; 否则if($ var === false)     echo'false';