RSS

  • YouTube
  • LinkedIn
  • 谷歌

PHP 比较错误

在你的社交媒体分享
  •  ;
  •  ;
  •  ;
  •  ;

今天, 我在写一个脚本在 PHP 使用在命令行中,当遇到了意外的行为 (至少对我而言).
该脚本应接收三个参数, 其中最后一个包含一个或多个数字代码列表.
尝试验证此最后一个参数得到一个不同的结果,比想象中.
看到我正在使用的代码片段:

有趣的是, 当我跑

其结果是

and reversing the condition to

显示预期的消息.
我试图将分配给单独的变量和仍然不工作.

为什么??

类型比较 !== cannot be used here, 因为所有参数都将都是字符串. 当我虽然关于这我得到了答案.

So I did some command line tests and I check for the actually behavior of PHP Comparisons.

当我们做一样的事情: $字符串 == $integer PHP will always do a CAST from String to the other type before comparison, 因此,代码 $字符串 == (int) $字符串 will always return true, 自 $字符串 将更改为 int in both sides.

为了避免这种麻烦, is necessary to have the same type in both sides of comparison.

见你.


在你的社交媒体分享
  •  ;
  •  ;
  •  ;
  •  ;

留言

您的电子邮件地址将不会发布. 标记必填的字段 *

此网站使用 Akismet 减少垃圾邮件. 了解如何处理注释数据.