嘿,我正在学习PHP,而且我发现这种类型的玩杂耍是一场彻头彻尾的噩梦。
我正在玩iterables并注意到TRUE
或FALSE
而是1
和0
。
小示例:
<?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转储TRUE
或FALSE
而不是1
和0
?
答案 0 :(得分:1)
您可以使用(bool)
或(boolean)
运算符进行转换,但您很少需要这样做,因为如果PHP看到需要布尔值的操作,则会自动转换。
如果您echo
或print
布尔值,它将永远不会输出TRUE
或FALSE
,它将转换为int
并显示1
}或0
。但是,您可以使用var_dump((bool)$val)
输出bool(false)
或bool(true)
,这可以让您更好地了解布尔值的转换方式。