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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM