if语句用于确定函数返回的问题

mrp*_*atg 2 php string equality

我使用if语句来确定在函数中返回什么,但它似乎没有按照我想要的方式工作.

function DoThis($dogs, $cats){
// do something with dogs, pet them perhaps.

$reg = $dogs[0];
$nate = $dogs[1];

if($cats = "dave"){return $reg;}
if($cats = "tom"){return $nate;}

}
Run Code Online (Sandbox Code Playgroud)

$cats是一个字符串(如果有帮助),并且在输入时它不会产生任何回报.如果我手动设置一个返回,这是有效的,但上述不是出于某种原因.

Jus*_*ier 6

要测试相等性,请使用==(double equals)运算符而不是=(single equals)运算符.

例如:

if("dave" == $cats){return $reg;}
if("tom"  == $cats){return $nate;}
Run Code Online (Sandbox Code Playgroud)


Ala*_*orm 6

您正在使用赋值运算符而不是比较运算符.请尝试以下方法.

 $cats == "dave"
 $cats == "tom"
Run Code Online (Sandbox Code Playgroud)

当你说

 if($cats = "dave") { ... }
Run Code Online (Sandbox Code Playgroud)

你真的在说

  1. 将值"dave"赋给变量$ cats
  2. 如果变量$ cats在赋值后为true,则返回true.否则,返回false

这是一个常见的错误,也是困扰老手和新手的东西.