如何在PHP中防止boolean类型变为int

时间:2017-07-06 16:54:47

标签: php types casting boolean

嘿,我正在学习PHP,而且我发现这种类型的玩杂耍是一场彻头彻尾的噩梦。 我正在玩iterables并注意到TRUEFALSE而是10

示例:

<?php
class MyIterator implements Iterator
{
    private $var = array();

    public function __construct($array)
    {
        if (is_array($array)) {
            $this->var = $array;
        }
    }

        public function valid()
    {
        $key = key($this->var);
        $var = ($key !== NULL && $key !== FALSE);
        print_r("valid: ". $var ."\n<br />");
        return $var;
    }

}

$values = array(1,2,3);
$it = new MyIterator($values);

foreach ($it as $a => $b) {
    print "$a: $b\n<br />";
}

在更大的数组或代码块中,这种输出变得非常混乱是否有办法强制PHP转储TRUEFALSE而不是10

1 个答案:

答案 0 :(得分:1)

您可以使用(bool)(boolean)运算符进行转换,但您很少需要这样做,因为如果PHP看到需要布尔值的操作,则会自动转换。

如果您echoprint布尔值,它将永远不会输出TRUEFALSE,它将转换为int并显示1 }或0。但是,您可以使用var_dump((bool)$val)输出bool(false)bool(true),这可以让您更好地了解布尔值的转换方式。