PHP如果单或等于

时间:2013-11-28 21:34:02

标签: php if-statement equals

为了检查一个字符串是否与另一个字符串匹配,我到目前为止一直使用双等号。例如

if ($string1==$string2)

这是因为我使用的大多数字符串都是字母数字。但是现在我用这样的数值来尝试同样的事情:

 $string1 = 10;
 $string2 = 10;

问题是,我是做一个相等还是双等于确保两个字符串匹配100%而不是更少而不是精确

我也这样做:

if ($string1==$string2) 

if ($string1=$string2)

3 个答案:

答案 0 :(得分:7)

Double equals(==)可能就是您想要用于比较的内容。 (您也可以使用三等于===进行'严格'比较,以便"2" === 2为假。)

单个等号是一个赋值:它会覆盖左侧,然后你的if语句就等于检查被分配的值(例如右侧的值)

例如,这会打印It's not zero!后跟foo = 1(正如您所期望的那样):

$foo = 1;
if ($foo == 0) {
  print("It's zero!");
} else {
  print("It's not zero!");
}
print("foo = " + $foo);

但这会打印It's not zero!后跟foo = 0(可能不是您所期望的):

$foo = 1;
if ($foo = 0) {
  print("It's zero!");
} else {
  print("It's not zero!");
}
print("foo = " + $foo);

原因是在第二种情况下,$foo = 0 $foo设置为0,然后将if评估为if($foo)。由于0是false值,因此运行else语句。

答案 1 :(得分:3)

运算符===相同,用于比较两个操作数的值类型。

当您想要比较两个值时,使用等于运算符==。如果both values are equivalent(即true15 == "15"),它将评估为true

赋值运算符=用于为变量赋值。此运算符不应用于比较值;这不是它的用途。

现在,为了以各种方式比较字符串,您可能需要查看strcmp family of functions。它们对于以各种方式比较字符串非常有用。

答案 2 :(得分:0)

$a === $b   TRUE if $a is equal to $b, and they are of the same type.

更多信息:http://www.php.net/manual/en/language.operators.comparison.php