Php 比较两个变量会返回错误的结果

Php 比较两个变量会返回错误的结果,php,string,Php,String,为什么总是返回true: $s = '334rr'; $i = (int)$s; if ($i == $s) { echo true; } else { echo false; } 如果我回显$I,它会给出334的值,这与$s不同,后者是334rr 使用==将字符串与整数进行比较时,字符串将尝试大小写为整数。使用==将字符串与整数进行比较时,字符串将尝试大小写为整数。来源: 如果将数字与字符串进行比较,或者比较涉及数字字符串,则会将每个字符串转换为数字,并以数字形式执行比较

为什么总是返回
true

$s = '334rr';
$i = (int)$s;

if ($i == $s) {
    echo true;
} else {
    echo false;
}

如果我回显
$I
,它会给出
334
的值,这与
$s
不同,后者是
334rr

使用
==
将字符串与整数进行比较时,字符串将尝试大小写为整数。

使用
==
将字符串与整数进行比较时,字符串将尝试大小写为整数。

来源:

如果将数字与字符串进行比较,或者比较涉及数字字符串,则会将每个字符串转换为数字,并以数字形式执行比较

因此:
($i==$s)
与您给定的值的
($i==(int)$s)
相同

使用
==
避免键入杂耍。

来自:

如果将数字与字符串进行比较,或者比较涉及数字字符串,则会将每个字符串转换为数字,并以数字形式执行比较

因此:
($i==$s)
与您给定的值的
($i==(int)$s)
相同


使用
==
避免类型转换。

不建议将字符串与int进行比较。您应该改为使用
==
,它将验证相同的数据类型以及相同的值。

不建议将字符串与int进行比较。您应该改为使用
==
,它将验证相同的数据类型以及相同的值。

当与另一个整数($i)进行比较时,PHP将$s字符串转换为整数。 它基本上做到了这一点(我不知道它在内部做什么,但归根结底是这样的):


这使得语句为true

当与另一个整数($i)进行比较时,PHP将$s字符串转换为整数。 它基本上做到了这一点(我不知道它在内部做什么,但归根结底是这样的):

这使得这句话是正确的

试试这个

$s = '334rr';
$i = intval($s);
if ($i == $s) {
 echo true;
 } else {
  echo false;
}
试试这个

$s = '334rr';
$i = intval($s);
if ($i == $s) {
 echo true;
 } else {
  echo false;
}