我的代码中有一条if语句与以下内容类似,并且我花了我一直的时间来弄清楚问题所在。
$a = 0;
if($a == 'something')
{
//this was being output when I didn't want it to be
}
使用
$a = '0';
固定的,但我真的不知道是怎么回事。
我的代码中有一条if语句与以下内容类似,并且我花了我一直的时间来弄清楚问题所在。
$a = 0;
if($a == 'something')
{
//this was being output when I didn't want it to be
}
使用
$a = '0';
固定的,但我真的不知道是怎么回事。
一个字符串,一个整数。 PHP会在两者之间根据需要,翻译,除非你正在使用的“严格”运营商:
(0 == '0') // true
(0 === '0') // false (types don't match).
在你的情况,找你整数0比较字符串“某物”。 PHP会将字符串'something'转换为整数。如果这里根本没有数字,它会变成一个整数0,这使得你的比较是真实的。
只是一个猜测,但我认为它试图将字符串转换为整数。
intval('something')
我预计将返回0
想要进行比较的数值($a = 0;
)转换为字符串。在这种情况下,字符串被转换为数字,如果开头没有数字,PHP会将字符串转换为0,因此为真。
然而在另一种情况下,你竞选了两个不同的字符串,所以它是false。
很快,谢谢! – Josh