0
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 = trueor返回任何东西$b = false;。知道如何使函数工作分配$b给布尔值而不是写'==1''==0'吗?

4

3 回答 3

2

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

var_dump($variable)

代替

echo $variable;
于 2013-10-06T19:55:48.817 回答
0
  • 返回 true 或 false 并使用运算符 === 和 !== 来测试返回值
  • 当您在浏览器上回显布尔变量时,您看不到 true 或 false,您将看到 1 为 true,而没有任何内容为 false 以打印它,将布尔值写为字符串,如下所示:

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

于 2013-10-06T20:05:18.130 回答
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;
}
于 2013-10-06T19:54:48.407 回答