【问题标题】:printing boolean打印布尔值
【发布时间】:2011-07-08 01:24:12
【问题描述】:

感谢您光临。

代码

$variable = 10;
$variableOne = 10;

$result = $variable == $variableOne;
echo $result; 

$variable 和 $variableOne 比较返回 false 时,为什么 $result 没有赋值为 0?然而最终结果是相反的,当比较返回 true 时,$result 被赋值为 1。

感谢您的宝贵时间, PHP初学者。

【问题讨论】:

    标签: php boolean


    【解决方案1】:

    $result 被分配truefalse。这很重要。不是10,而是truefalse。当echoing true 时,输出为1。当echoingfalse时,输出为空字符串。试试var_dump($result) 看看有什么不同。

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

    【讨论】:

    • 使用 var_dump( $result );输出布尔(假)。但是如果我想在 if 语句中使用 $result 怎么办
    • @user832596:然后在if语句中使用它:if ($result) { ... } else { ... }
    • @user 不,抱歉。不过,我不能高度推荐在线文档。
    【解决方案2】:

    执行var_dump($result); 并查看该变量是布尔值,因为它已被分配了== 运算符评估,始终为布尔值

    【讨论】:

    • @user832596:很遗憾,我不知道任何适合初学者的现代书籍,抱歉:-(
    • @DonutsAndCode,我会推荐 Matt Doyle(elated.com 背后的人)的《Beginning PHP 5.3》。它确实教会了我很多东西。
    【解决方案3】:

    $result 不是表达式的结果,但在您的代码中是一个(无效的)赋值。

    语法应该是这样的:

    if($variable == $variableOne){
        $result = true;
    } else {
        $result = false;
    }
    
    echo $result;
    

    【讨论】:

    • Lolwhut?你完全错了$result 表达式评估的结果。在他的代码中,这是 有效 赋值。
    猜你喜欢
    • 2013-07-02
    • 2019-07-31
    • 2017-02-28
    • 1970-01-01
    • 1970-01-01
    • 2011-10-26
    • 1970-01-01
    • 1970-01-01
    • 2013-11-07
    相关资源
    最近更新 更多