踩坑代码
var_dump('abc' == 0);
// 输出结果为:bool(true)
原因: 字符串被转成int类型进行比较。而(int)'abc’的结果为0。
测试出的字符串转int规则。
- 读取字符串数字位,遇到字符位截止。未读到数字位则返回0.
例:
var_dump((int)'66abc23'); // 输出int(66)
var_dump((int)'abc1'); // 输出int(0)
- 读取到特殊数字字符(必须符合格式)也会转换,如:‘e’
var_dump((int)'2eabc'); // 输出:int(2)
var_dump((int)'2ee'); // 输出:int(2)
var_dump((int)'2e2abc'); // 输出:int(200)
var_dump((int)'2e0002abc'); // 输出:int(200)
var_dump((int)'2e2e2'); // 输出:int(200)