为了检查一个字符串是否与另一个字符串匹配,我到目前为止一直使用双等号。例如
if ($string1==$string2)
这是因为我使用的大多数字符串都是字母数字。但是现在我用这样的数值来尝试同样的事情:
$string1 = 10;
$string2 = 10;
问题是,我是做一个相等还是双等于确保两个字符串匹配100%而不是更少而不是精确
我也这样做:
if ($string1==$string2)
或
if ($string1=$string2)
答案 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(即true
为15 == "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