Почему переменная возвращает логическое значение false вместо object?
Привет. Я новичок в php oop, и у меня есть вопрос.
У меня есть этот метод в моем классе:
public function find($user = null) { if ($user) { $field = (is_numeric($user)) ? 'id' :'username'; $data = $this->_db->get('users', array($field, '=', $user)); //var_dump($data); //die(); if ($data->count()) { $this->_data = $data->first(); return true; } } return false; }
Когда я вызываю функцию класса count() Я получил сообщение:
Вызов функции-члена count() на не-объекте
And here is my DB class methods: public function action($action, $table, $where = array()) { if (count($where) === 3) { $operators = array('=', '<', '>', '<=', '>='); $field = $where[0]; $operator = $where[1]; $value = $where[2]; if (in_array($operator, $operators)) { $sql = "{$action} FROM {$table} WHERE {field} {$operator} ?"; if (!$this->query($sql, array($value))->error()) { return $this; } } } return false; } public function get($table, $where) { return $this->action('SELECT *', $table, $where); } public function results() { return $this->_results; } public function first() { return $this->_results()[0]; } public function error() { return $this->_error; } public function count() { return $this->_count; }
Что я уже пробовал:
Я понимаю, что $data - это не объект:
var_dump($data); возвращает логическое значение false????
Leo Chapiro
Может быть, ваш выбор не возвращает никаких результатов?
Member 13995628
Нет, он возвращает логическое значение false, и таблица БД не пуста :/