PHP如果单或等于

Joh*_*ohn 2 php if-statement equals

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

if ($string1==$string2)
Run Code Online (Sandbox Code Playgroud)

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

 $string1 = 10;
 $string2 = 10;
Run Code Online (Sandbox Code Playgroud)

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

我也这样做:

if ($string1==$string2) 
Run Code Online (Sandbox Code Playgroud)

要么

if ($string1=$string2)
Run Code Online (Sandbox Code Playgroud)

Amb*_*ber 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);
Run Code Online (Sandbox Code Playgroud)

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

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

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