为什么1 =='1,2'为真?

xwl*_*lee 2 php int types equals

只是好奇PHP类型转换如何适用于这种情况.

var_dump(1 == '1,2') // boolean(true)
Run Code Online (Sandbox Code Playgroud)

Sha*_*ran 7

这是因为1是一个整数,当它与一个字符串进行比较时1,2,这个字符串将被转换为一个整数,返回1.

如何投射一个字符串1,2返回1?

echo int('1,2'); // prints 1 
Run Code Online (Sandbox Code Playgroud)

因此,当它与你的1相比时,这显然会回到true你的身上var_dump

来自PHP Docs ..(基本比较测试)

如果将数字与字符串进行比较或比较涉及数字字符串,则每个字符串将转换为数字,并且数字执行比较.

Source