【问题标题】:Converting to Boolean Value in PHP [duplicate]在 PHP 中转换为布尔值 [重复]
【发布时间】:2012-02-04 19:14:54
【问题描述】:

可能重复:
How to Convert Boolean to String

我认为问这个问题可能有点傻,但我仍然想知道是否有内置方法可以返回 false 或 true,因为它们看起来而不是 0 或 1,实际上这段代码甚至没有写 0 但 1:

<?php
$array = array(1,2,3);
echo (bool) $array;
?>

所以我希望这段代码写“真”或“假”而不是数值。我知道我可以构建一个函数,但我的好奇心喜欢学习一种内置方法(如果有的话)。

【问题讨论】:

    标签: php


    【解决方案1】:

    只需使用conditional operator:

    echo (true ? 'true' : 'false');
    echo (false ? 'true' : 'false');
    

    演示:http://codepad.org/hNHhXnBv

    【讨论】:

      【解决方案2】:

      echo 使用布尔值将始终打印 0 或 1。改为使用 var_dump()

      另一种选择是根据值回显“真”或“假”:

      echo ((bool)$array) ? 'true' : 'false'
      

      【讨论】:

      • 实际呼应它们看看怎么样?
      • 那么,它真的会打印 0 和 1 吗?
      • @Col.Shrapnel:你在说什么?
      • @Light 我在问 PHP 是否“在 eching 布尔值时总是打印 0 或 1”
      • 另外,显式强制转换将是一种矫枉过正。 ($array) 就够了。
      【解决方案3】:

      var_export() 打印类型和结果。

      echo var_export((bool)$array, 1);
      

      【讨论】:

        【解决方案4】:

        我认为主要问题是将数组 ELEMENTS 转换为布尔值,而不是整个数组。

        您可以为此使用函数array_map

        function conv2bool($i) { return (bool) $i; }
        
        $int_array = array(0,1,0,2,3);
        $bool_array = array_map("conv2bool", $int_array);
        
        var_dump($bool_array);
        

        ...这将返回:

        array(5) { [0]=> bool(false) [1]=> bool(true) [2]=> bool(false) [3]=> bool(true) [4]=> bool(true) }
        

        【讨论】:

        • 你这是什么意思?我已经尝试过这段代码,它完全按照我说的做。
        • 你的假设,我相信。错了。
        • 但是将整个array 转换为单个boolean 根本没有任何意义?!如果数组为空,这只会给你假,否则我想。
        • @MaxWeller:是的,如果这是你想做的事,这很有意义......
        猜你喜欢
        • 2014-09-03
        • 1970-01-01
        • 1970-01-01
        • 2011-01-13
        • 2023-03-09
        • 2011-05-19
        • 2013-12-03
        • 2018-12-02
        相关资源
        最近更新 更多