$a=0和$a=&x27之间的差异;0';在PHP中
我的代码中有一个类似于下面的if语句,我花了很长时间才弄清楚问题出在哪里$a=0和$a=&x27之间的差异;0';在PHP中,php,Php,我的代码中有一个类似于下面的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 (t
$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与字符串“something”进行比较。PHP将字符串“something”转换为整数。如果里面根本没有数字,它将转换为整数0,这使您的比较为真。只是猜测,但我假设它试图将字符串转换为整数
intval('something')
我希望返回0。您正在将数值($a=0;
)与字符串进行比较。在本例中,字符串被强制转换为数字,如果开头没有数字,PHP将字符串强制转换为0,true
但是,在另一种情况下,您使用两个不同的字符串,因此它是false