PHP的返回语法和语义

时间:2014-10-18 10:13:28

标签: php

两个函数A,F之间的区别是什么?抱歉使用mysql而不是mysqli或PDO

function A ($B){

    if($result = mysql_query("SELECT C FROM D WHERE E")) 
    {
        if ($row = mysql_fetch_array($result)) 
        {
         return  $text = $row['C'];
        }
        return 0;
    }

return 0;
}

和这一个:

function F ($G){

        if($result = mysql_query("SELECT C FROM D WHERE E")) 
        {
            if ($row = mysql_fetch_array($result)) 
            {
             return  $row['C'];
            }
        }

    return 0;
}

1 个答案:

答案 0 :(得分:0)

两种情况下的最终结果都是相同的(就像现在一样),因为如果查询成功并返回结果,两个函数都将返回列C的值。

在第一个示例中,如果查询成功,A也将返回0,但如果您将其修改为:

,则不返回任何结果
function A ($B){

    if($result = mysql_query("SELECT C FROM D WHERE E")) 
    {
        if ($row = mysql_fetch_array($result)) 
        {
            return  $text = $row['C'];
        }
        return 0;
    }
    return 1;
}

如果返回值为0,您将知道查询成功,但如果返回值为1,则表示查询执行失败。如果C不包含值01,那么在这种情况下,您无法确定返回的0或{{1} }}是列1的返回值或函数的实际返回语句

<强>更新

要区分这两者,如果出现故障,您可以返回C

false

然后检查函数的返回值是否真的为假:

 return false;

注意:请参阅if(A() === false) { // something went wrong, do something else } ,它确保相等性检查仅检查布尔值===和字符串false或值{{1 }或"false"未归类为0