【问题标题】:problem with if statement used to determine function return用于确定函数返回的 if 语句的问题
【发布时间】:2009-12-03 22:33:12
【问题描述】:

我正在使用 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 是一个字符串(如果有帮助的话),输入时它不会产生任何返回。 如果我手动设置退货,那可以,但由于某种原因,上述方法无效。

【问题讨论】:

    标签: php string equality


    【解决方案1】:

    要测试是否相等,请使用 ==(双等号)运算符而不是 =(单等号)运算符。

    例如:

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

    【讨论】:

    • 把变量写在右边,如果忘记=,就会出现解析错误。例如if ('dave'==$cats ) {
    • 好电话,我刚刚更新了我的答案。一旦你养成了这种习惯,这是一种很棒的风格,尽管你会看到的每个 if 语句的例子总是以相反的方式......
    【解决方案2】:

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

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

    当你说

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

    你说的是真的

    1. 将值“dave”赋给变量 $cats
    2. 如果变量 $cats 在赋值后为真,则返回真。否则返回false

    这是一个常见的错误,并且困扰着老手和新手。

    【讨论】:

      【解决方案3】:

      你需要使用 == 来比较。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-12-04
        • 2016-01-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-17
        • 1970-01-01
        相关资源
        最近更新 更多