Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php false的计数为1,空数组的if为false。为什么?_Php - Fatal编程技术网

Php false的计数为1,空数组的if为false。为什么?

Php false的计数为1,空数组的if为false。为什么?,php,Php,我有一个函数,它只返回一行作为数组 我给出一个查询作为参数,它只给出一行 function getFields($query) { $t =& get_instance(); $ret = $t->db->query($query); if(!$ret)return false; else if(!$ret->num_rows()) return array(); else return $ret->row_array()

我有一个函数,它只返回一行作为数组

我给出一个查询作为参数,它只给出一行

function getFields($query)
{
    $t =& get_instance(); 
    $ret = $t->db->query($query);
    if(!$ret)return false;
    else if(!$ret->num_rows()) return array();
    else return $ret->row_array();
}
$ret = getFields('query string');
我以为

  • 如果有错误,我可以像if(!$res)//echo error那样检查它
  • 如果它是空的,我可以像(!count($res))//没有行一样检查它
  • 否则我假设有一行并继续这个过程
  • 但是

  • 当出现错误时,返回false。在if(count($ret))中,给出1
  • 如果($ret)条件失败(如果返回空数组,则返回false)
  • //

    这段代码是使用ajax调用的。所以我返回一个json响应

    为什么计数为1,如果空数组为false

    我只是想用逻辑条件编码,而不是给出更多的关系条件。只是为了减少代码。

    我在哪里可以得到所有这些php的bug,这样我就可以确保我不会像上面那样出现逻辑错误

    窃听-在上面的句子中 窃听我指的不是窃听器,而是 事情让我们烦恼。使我们 逻辑错误



    我编辑了以下代码以包含以下内容,同时我得到了以下回复

    我可以这样做,但我仍然想知道为什么要做上述解释

    if($fes===false)jerror();
    if(!$fes)jsuccess('status,4');      
    

    为什么不先检查一下
    $ret===false

    “为什么计数为1”-参见:

    如果var不是数组,则返回[…]1。 “如果空数组给出false。”-请参阅:

    转换为布尔值时,以下值被视为FALSE:
    [...]
    • 具有零元素的数组
    如果
    $myVariable
    不是数组,而是空的,则

    $count = count($myVariable);
    
    给出
    1

    对于这种情况,我检查变量是“array”还是“bool(false)”。若输出是数组,则使用count,若不是数组,则将number设置为零

    if (is_array($myVariable)) {
        $count = count($myVariable);
    } else {
        $count = 0;
    }
    

    我正准备编辑我的帖子,将其包括在内,并找到了你的回复。这是对上述问题的一个很好的建议。美好的谢谢。啊。。。我是不是太懒了以至于不能参考文件。。。可能是这样的时候。嗯,是的。。。谢谢我正在做上面的一点分析,然后会回来。。。
    if (is_array($myVariable)) {
        $count = count($myVariable);
    } else {
        $count = 0;
    }