FALSE的字符串表示不能是"0"
,就像TRUE被变成"1"
一样吗?
布尔值TRUE值转换为字符串“1”。布尔值为FALSE 转换为“”(空字符串)。这允许转换回来 在布尔值和字符串值之间。
它们是什么意思“允许在布尔值和字符串值之间来回转换”。
那么TRUE
不允许这样做?
你可以解释一下并举一些例子吗?
注意:我知道还有其他相关问题,但没有一个提供我正在寻找的东西!所以不要打扰复制链接!!
答案 0 :(得分:2)
检查以下代码:
var_dump("0" == false.""); // bool(false)
var_dump("" == false.""); // bool(true)
如果false表示为"0"
,则给定的比较结果为false
为"0" != ""
。
这就是false
表示为""
而不是"0"
的原因,提供了反向转化。
答案 1 :(得分:0)
这个问题的答案或多或少基于意见。这是我的解释:
历史上,在操作失败的情况下,PHP在许多情况下使用FALSE作为输出值。例如,substr()
会返回字符串或 FALSE 。因此,在我看来,PHP优化了FALSE转换用于输出目的:
$name = 'JOHN';
$theSixthLetter = substr($name, 6, 1); // false
echo 'The sixth letter of the name is: ' . $theSixthLetter; // empty string