php 数组和数字类型的比较
问题
array 和 int 的比较
有小伙伴在 QQ 群提出一个问题,一个数据和一个数字类型比较后不会报错。
问题如下:
$a = ['len_time' => 2834]; var_dump($a > 3600);
运行的结果是 true,既没有报错,而且还为 true,有点疑惑不解。
分析过程
array 被强制转换?
int 被强转换?
都不是
以上都不对,只要是与 array 比较,一定是 array 大,这是 php 内部规定的,详细看附录参考链接。
延伸
字符串会被强制转换
曾经有人提出一个问题说 php 的 0 与任何字符串比较都为 true,这是不对的,但其实是正确的,因为字符串被强制转换后都成了 0。
附录
参考链接
PHP 类型比较表 https://www.php.net/manual/zh/types.comparisons.php
版本
- v1
- 2020-08-27
- 建伟 F4NNIU