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

时间:2009-12-03 22:33:12

标签: 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;}

}

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

3 个答案:

答案 0 :(得分:6)

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

例如:

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

答案 1 :(得分:6)

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

 $cats == "dave"
 $cats == "tom"

当你说

 if($cats = "dave") { ... }

你真的在说

  1. 将值“dave”分配给变量$ cats
  2. 如果变量$ cats在赋值后为真,则返回true。否则,返回false
  3. 这是一个常见的错误,也是困扰旧手和新手的东西。

答案 2 :(得分:2)

您需要使用==进行比较。

=是一个赋值,所以它具有将$ cats设置为“dave”的效果,然后(因为表达式求值为“dave”,这是非空的)它将if语句视为“if(true) )...“并执行包含的代码。