php 数组和数字类型的比较

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.cnblogs.com/weiyalin/p/10388167.html
PHP 类型比较表 https://www.php.net/manual/zh/types.comparisons.php
php陷阱:字符串和数字比较 https://www.cnblogs.com/youxin/p/3873397.html

版本

  • v1
  • 2020-08-27
  • 建伟 F4NNIU

posted on 2020-08-27 15:50  建伟F4nniu  阅读(734)  评论(0编辑  收藏  举报

导航