首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP的返回语法和语义

问PHP的返回语法和语义
EN

Stack Overflow用户
提问于 2014-10-18 18:13:28
回答 1查看 46关注 0票数 0

两个函数A,F之间的区别是什么?

抱歉,我使用mysql而不是mysqli或PDO

代码语言:javascript
复制
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;
}

还有这一条:

代码语言:javascript
复制
function F ($G){

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

    return 0;
}
EN

回答 1

Stack Overflow用户

发布于 2014-10-18 18:23:51

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

在第一个示例中,如果查询成功但没有返回任何结果,则A也将返回0,因此,如果您将其修改为:

代码语言:javascript
复制
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不包含0或1值,在这种情况下,您就不能真正确定返回的0或1是列C的返回值还是函数的实际返回语句

更新

要区分这两种情况,可以在出现故障时返回false:

代码语言:javascript
复制
 return false;

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

代码语言:javascript
复制
if(A() === false)
{
     // something went wrong, do something else
}

注意:参见===,它确保相等检查只检查布尔值false,并且字符串"false"或值0或'0'不会被归类为false

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26438611

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档