php - 在 PHP 中用 == 比较不同的字符串返回 true

标签 php string comparison string-comparison comparison-operators

我刚刚调试了一个脚本,发现 if 语句没有按我预期的方式工作。

var_dump("6064365413078728979" == "6064365413078728452");
die();

上面的代码会产生以下结果:

bool(true)

使用 === 运算符,它可以按预期工作。有人知道为什么吗?

我在 x64 windows 机器上使用 PHP 版本 5.3.13 和 wamp 安装。

最佳答案

PHP 具有松散的类型比较行为,因此您的数字字符串在 == 非严格比较之前被转换为整数类型,并且转换结果溢出。

这是尽可能使用 === 的主要原因。

看看this page有关类型杂耍的更多详细信息。

关于php - 在 PHP 中用 == 比较不同的字符串返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14259162/

相关文章:

javascript - 如果 php 抛出警告,如何将数据从 php 发送到 jquery ajax 成功处理程序?

string - 从十六进制字符串表示创建原始 unicode 字符

android - 匹配两个音频文件

sql - 将字符串与 SQLite3 中的数字进行比较

javascript - 在 javascript 中将数组映射到对象中的键

php - 使用PDO登录时,PHP检查数据库中的用户名和密码

php - 拉维尔,PHP : json_encode gives different result in Laravel and raw PHP

javascript - 如何使用 javascript 在 <td> 中搜索字符串然后添加到该 id 中?

javascript - 如果是逗号,则从字符串中删除第一个字符

c - 如何检查单词a中单词b中的所有字符(C语言)?