为什么 0 == 'Y' 可以执行成功

0 == 'Y'

if(0 == 'Y'){
    echo 111;
}

输出 111

心有法竹
浏览 430回答 6
6回答

小怪兽爱吃肉

变量类型的隐式转化 双方类型不同 会转化成同一种类型

阿波罗的战车

这就是松散比较

富国沪深

参考这篇PHP 比较类型强转隐患

摇曳的蔷薇

因为'Y'在和数值比较时被自动转换为了0啊

手掌心

If you compare a number with a string or the comparison involves numerical strings, then each string is converted to a number and the comparison performed numerically. 数字和字符串比较,字符串会被转换为数字,Y不含任何的的有效数字字符,因此被转换成 0 var_dump(0 == "a"); // 0 == 0 -> true var_dump("1" == "01"); // 1 == 1 -> true var_dump("10" == "1e1"); // 10 == 10 -> true var_dump(100 == "1e2"); // 100 == 100 -> true
打开App,查看更多内容
随时随地看视频慕课网APP