两个函数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;
}
答案 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
不包含值0
或1
,那么在这种情况下,您无法确定返回的0
或{{1} }}是列1
的返回值或函数的实际返回语句
<强>更新强>
要区分这两者,如果出现故障,您可以返回C
:
false
然后检查函数的返回值是否真的为假:
return false;
注意:请参阅if(A() === false)
{
// something went wrong, do something else
}
,它确保相等性检查仅检查布尔值===
和字符串false
或值{{1 }或"false"
未归类为0