Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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 调用非对象上的成员函数count(),第23行_Php - Fatal编程技术网

Php 调用非对象上的成员函数count(),第23行

Php 调用非对象上的成员函数count(),第23行,php,Php,无法理解为什么我无法在代码中计算($check)变量。假设代码正在检查sql是否返回了任何值 请让我知道,如果我需要提交更多的信息 <?php class Validate { private $_passed = false, $_errors = array(), $_db = null; public function __construct() { $this->_db = DB::getIn

无法理解为什么我无法在代码中计算($check)变量。假设代码正在检查sql是否返回了任何值

请让我知道,如果我需要提交更多的信息

<?php
class Validate {
    private $_passed = false,
            $_errors = array(),
            $_db = null;


    public function __construct() {
        $this->_db = DB::getInstance();
    }

    public function check($source, $items = array()) {
        foreach($items as $item => $rules) {
            foreach($rules as $rule => $rule_value) {
                $value = $source[$item];

                if($rule === 'required' && empty($value)) {
                    $this->addError("{$item} is required");
                } else if(!empty($value)){
                    switch($rule) {
                        case 'matches':
                            if($value!=$source[$rule_value]) {
                                $this->addError("{$rule_value} must match {$item}");
                            }
                        break;
                        case 'unique':
                            $check = $this->_db->get($rule_value, array($item, '=', $value));
                            if ($check->count()) {
                                $this->addError("{$item} already exists.");
                            }
                        break;
                    }
                }
            }
        }
        if(empty($this->_errors)) {
            $this->_passed = true;
        }
        return $this;
    }

    private function addError($error) {
        $this->_errors[] = $error;
    }

    public function errors() {
        return $this->_errors;
    }

    public function passed() {
        return $this->_passed;
    }
}
?>

根据您的问题,
$count
是一个变量(数组/变量),您正在对其调用成员函数

但是,这不是一个目标

count()
是内置的PHP函数

您需要更改:

if ($check->count()) {

您想进行计数($check)$支票不是一门课

if (count($check)) {