duanpin5168 2014-07-29 11:19
浏览 15
已采纳

无法从php中的类访问另一个类的方法

I have class for database which is like this

class DB {
    private static $_instance = null;
    private $_pdo ,
            $_query ,
            $_results, 
            $_error=false, 
            $_count=0;

    private function __construct() {
        try {
            $this->_pdo= new PDO('mysql:host=' . Config::get('mysql/host') . ';dbname=' . Config::get('mysql/db'),Config::get('mysql/username'),Config::get('mysql/password'));
            //echo 'connected';

        } catch (PDOException $e) {
            die($e->getMessage());
        }
        }

        public static function getInstance(){
            if (!isset(self::$_instance)) {
                self::$_instance = new DB();
            }
            return self::$_instance;
        }
         public function get($table,$where){
            return $this->action("select *",$table,$where);
        }

}

And I have another class from where I need to use the DB class

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

    public function _construct (){

        $this->_db = DB::getInstance();
    }

   public function check($source , $items = array()){
            $check = $this->_db->get($rule_value,array($item, '=',$value)); 
  }

My problem is when I run this program I got an error like this

Call to a member function get() on a non-object

What is the reason for this error as I already have an instance of DB class in my constructor .

  • 写回答

1条回答 默认 最新

  • dongsong8932 2014-07-29 11:23
    关注

    Your Validate constructor isn't defined correctly, and thus isn't being called.

    public function _construct (){
    

    No constructor call means $this->_db is returning null in your check() method. It should simply have another underscore:

    public function __construct() {
                    ^
    

    Constructors and Destructors in PHP

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥60 pb数据库修改或者求完整pb库存系统,需为pb自带数据库
  • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错
  • ¥15 单片机学习顺序问题!!
  • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)
  • ¥15 相敏解调 matlab
  • ¥15 求lingo代码和思路