在PHP中,比较时,如下
var_dump(0 == 1); // false
var_dump(0 == (bool)'all'); // false
var_dump(0 == 'all'); // TRUE, take care
var_dump(0 === 'all'); // false
很多同学应该都会纳闷,为啥 0==’all‘ 居然为 true,按照其他语音(如C#等),默认的 应该是 int转换成 string,或者两种都转换成bool比较,都不会成立。
此时,要注意在php中比较运算时,只要涉及到 比较一个数字和字符串或者比较涉及到数字内容的字符串,则字符串会被转换成数值,并且按照数值来进行比较。
此时 ,intval(’all‘)的值时等于0的,故有 0==‘all' 为true 成立。