为了账号安全,请及时绑定邮箱和手机立即绑定

为什么范围( 0, 0 )的断言对于任何单元素数组都返回true,而不管其值如何?

为什么范围( 0, 0 )的断言对于任何单元素数组都返回true,而不管其值如何?

PHP
慕森卡 2021-06-30 13:59:20
这些都是预期的(根据https://php.net/manual/en/language.operators.array.php):assert( range( 0, 0 ) == [0] );assert( range( 0, 0 ) == ['0'] );assert( range( 0, 0 ) !== ['not zero'] );assert( range( 0, 1 ) != ['not zero', 'not zero'] );但是为什么不管它的值如何,它range( 0, 0 )显然都被认为==等于任何单元素数组?assert( range( 0, 0 ) == ['not zero'] ); // return TRUE??
查看完整描述

1 回答

?
动漫人物

TA贡献1815条经验 获得超10个赞

更好的解释是==运算符数组元素转换int,因为运算符的左侧是带有 int 的数组。

因为两者intval('not zero')(int) 'not zero'将返回 0 比较将返回 true ,因为它是 0 (正如人们可以在这里看到的)。

使用===PHP 时不进行类型转换,因此字符串保持字符串,因此比较失败(来自PHP 运算符):

===: 如果 $a 和 $b 具有相同顺序和相同类型的相同键/值对,则为 TRUE 。


查看完整回答
反对 回复 2021-07-09
  • 1 回答
  • 0 关注
  • 208 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信