0和任何非数字(或不可以)转换成数字字符串(引导)比较运算符的真实返回。= =)。

原因是,当数字与字符串比较时,首先尝试将字符串转换成数字,然后比较不能转换为数字的字符串,转换结果为0。因此,与0相比,它总是返回到真的。


更详细的比较规则、多种类型的比较规则可以在PHP手册中引用。

在PHP中比较两个数字字符串时,它们直接与数字比较进行比较。
以下示例:(注意$和$ b的两个变量中的最后一个不相等)
复制代码代码如下所示:
1
< PHP
美元= '511203199106034578;
$ = '511203199106034579;
如果($ = $ b){
echo'equal;
{人}
echo'notequal;
}
>

运行上面的程序并发现结果是相等的(不是我们认为的结果)。

我们给A和B分别加了A的字母。

复制代码代码如下所示:
2
< PHP
美元= 'a511203199106034578;
$ = 'a511203199106034579;
如果($ = $ b){
echo'equal;
{人}
echo'notequal;
}
>

输出是不平等的(正确的结果)。

示例1是相等的,因为PHP将两个数字字符串转换为数字类型,这两个数字与下面的示例相同。
复制代码代码如下所示:
< PHP
$ = 511203199106034578;
$ = 511203199106034579;
回声$ / / 5.1120319910603e;+ 17的输出是511203199106030000
echo $ B; / / 5.1120319910603e + 17的输出是511203199106030000
>

所以我们在例子1中得到的结果是相等的。

为了避免类型的意外后果,使用运算符=下面的示例(如果$等于B,并且它们也是相同的类型)
复制代码代码如下所示:
4
< PHP
美元= '511203199106034578;
$ = '511203199106034579;
如果($ = = $ B){
echo'equal;
{人}
echo'notequal;
}
>

所以我们可以得到预期的不平等