字符串上带==的PHP假阴性

字符串上带==的PHP假阴性,php,types,type-conversion,string-comparison,Php,Types,Type Conversion,String Comparison,在PHP中使用==比较两个字符串时,有很多误报的例子 例如,'1'='1.0'为真 然而,是否有任何错误的否定?是否存在一些字符串$a,使得$a==$a由于类型转换而为false。php将通过类型杂耍作为一项功能来创建误报(它试图提供帮助) 相关问题: 如果您想避免一些误报,请使用严格比较“1”='1.0',这样您可以比较类型和值,而不仅仅是值,或者您可以使用strcmp()和strcasecmp()来比较字符串。这是打字错误吗?或者你真的在寻找一个不等于它本身的字符串?因为没有,在PHP中没

在PHP中使用
==
比较两个字符串时,有很多误报的例子

例如,
'1'='1.0'
为真


然而,是否有任何错误的否定?是否存在一些字符串
$a
,使得
$a==$a
由于类型转换而为false。php将通过类型杂耍作为一项功能来创建误报(它试图提供帮助)

相关问题:


如果您想避免一些误报,请使用严格比较“1”='1.0',这样您可以比较类型和值,而不仅仅是值,或者您可以使用
strcmp()
strcasecmp()
来比较字符串。这是打字错误吗?或者你真的在寻找一个不等于它本身的字符串?因为没有,在PHP中没有任何情况下,
$a==$a
的计算结果会变成
false
。很抱歉,与“1.0”==“1”的字符串比较是不正确的。如果要比较字符串的值,需要在测试之前或测试期间将其转换为数值:If(floatval('1')==floatval('1.0'))将为true,因为它正在比较正确的类型。阅读有关类型转换的内容: