Php 为什么var#u export(0==';xxx';)返回true?

Php 为什么var#u export(0==';xxx';)返回true?,php,Php,在php中,如果执行var\u导出(0==“xxx”)则返回true。这在逻辑上有何意义?请记住,PHP将为您键入强制转换值。由于您正在进行整数到字符串的比较,xxx将转换为int,并且由于其中没有有效的number-y类型值,xxx将变为0。因此,您正在有效地测试0==0,这总是正确的 如果您有类似于0=='42xx',那么它将转换为0==42,并且为false 还有严格的相等测试,===,它比较值和类型,其中,0==='xxx'是FALSE请记住,PHP将为您键入强制转换值。由于您正在进行整

在php中,如果执行
var\u导出(0==“xxx”)
则返回true。这在逻辑上有何意义?

请记住,PHP将为您键入强制转换值。由于您正在进行整数到字符串的比较,
xxx
将转换为int,并且由于其中没有有效的number-y类型值,
xxx
将变为
0
。因此,您正在有效地测试
0==0
,这总是正确的

如果您有类似于
0=='42xx'
,那么它将转换为
0==42
,并且为false


还有严格的相等测试,
===
,它比较值和类型,其中,
0==='xxx'
FALSE

请记住,PHP将为您键入强制转换值。由于您正在进行整数到字符串的比较,
xxx
将转换为int,并且由于其中没有有效的number-y类型值,
xxx
将变为
0
。因此,您正在有效地测试
0==0
,这总是正确的

如果您有类似于
0=='42xx'
,那么它将转换为
0==42
,并且为false

还有严格的相等测试,
===
,它比较值和类型,其中,
0==='xxx'
FALSE