【发布时间】:2017-04-24 13:32:39
【问题描述】:
我刚刚发现 PHP if 子句的奇怪行为
var_dump((bool)0);
var_dump((bool)"one");
var_dump(0 == "one");
打印出来
bool(false) bool(true) bool(true)
文档说“表达式被评估为其布尔值”,所以布尔值 0 是 false 和 "one" 是 true 所以 0 == "one" 的结果应该是 false 但它是 @ 987654330@ 代替。
谁能解释一下?
【问题讨论】:
-
PHP
==似乎几乎一文不值。这似乎相关:php.net/manual/en/types.comparisons.php -
"这种 php 行为是否在手册中的某处进行了解释?(与零比较的字符串)" 这不一样,'0' 和 '0000' 都被转换为 0,这是显而易见的
-
“这种 php 行为是否在手册中的某处进行了解释?(与零比较的字符串)”也不相同,因为它将被转换为 0,因为它将第一个数字转换为 int。不一样
标签: php