Php 为什么var#u export(0==';xxx';)返回true?
在php中,如果执行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将为您键入强制转换值。由于您正在进行整
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