我只是发现了PHP的怪异行为,如果条款Comparsion奇怪的行为0 ==“一”
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
,但它的代替值是true
。
有人可以解释它吗?
PHP''==看起来几乎一文不值。这似乎是相关的:http://php.net/manual/en/types.comparisons.php –
“这是在手动的某处解释的PHP行为?(字符串与零比较)”这是不一样的'0'和'0000 '两者都被转换为0,这很明显 – Robert
“这个php行为在手册的某处解释过吗?(带零比较的字符串)”也不一样,因为它将被转换为0,因为它会将第一个数字转换为int。这是不正确的 – Robert