count函数在php7.2触发警告

慕若曦   ·  9月前   ·   后端语言

前两天想写点儿东西,用了封尘N年前写的一个Sqlite类

今天改bug的时候发现count函数出bug了

原内容:

//获取一条数据
    public function getone($sql) {
        $result = $this->db->query($sql)->fetch();
        if (count($result) > 0) {
            return $result[0];
        }
        return false;
    }

然后发现抛出了警告

// Warning:  count(): Parameter must be an array or an object that implements Countable

瞬间懵逼

问了一下度娘,发现

count函数在php7.2将严格执行类型区分. 不正确的类型传入,会引发一段警告.

所以……需要一个用来统计的函数兼容下我的本地环境和服务器里的php

function fun_count($array_or_countable,$mode = COUNT_NORMAL){
    if(is_array($array_or_countable) || is_object($array_or_countable)){
        return count($array_or_countable, $mode);
    }else{
        return 0;
    }
}

同时度娘告诉我,7.2里类似的问题还有:

  • each函数在php7.2已经设定为过时

  • create_function函数在php7.2已经设定为过时

噫……mdzz
3 条回复   |  直到 9月前 | 387 次浏览

admin 9月前 支持  0 | 反对  0

7.2环境?用这么高啊

慕若曦 9月前 支持  0 | 反对  0


@admin  本地装的phpstudy,自动更新的

登录后才可发表内容