Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.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:子类无法访问MySQL对象_Php_Mysql_Class - Fatal编程技术网

PHP:子类无法访问MySQL对象

PHP:子类无法访问MySQL对象,php,mysql,class,Php,Mysql,Class,通过函数chief我试图启动一个mysql连接,该连接将被多个类/函数全局使用 当我将该类扩展到会话类时,子类无法访问mysql对象$db class chief { protected $db; public function __construct() { $this->db=new stdClass(); $this->db=new mysqli('', '', '', ''); } } class sessi

通过函数
chief
我试图启动一个mysql连接,该连接将被多个类/函数全局使用

当我将该类扩展到
会话
类时,子类无法访问mysql对象
$db

class chief {

    protected $db;

    public function __construct() {

        $this->db=new stdClass();

        $this->db=new mysqli('', '', '', '');
    }

}

class session extends chief {
    public function __construct($address=null) {

        var_dump($this->db);
    }
}
打印结果:

chief Object
(
    [db:protected] => mysqli Object
        (
            [affected_rows] => 0
            [client_info] => mysqlnd 5.0.12-dev - 20150407 - $Id: 38fea24f2847fa7519001be390c98ae0acafe387 $
            [client_version] => 50012
            [connect_errno] => 0
            [connect_error] => 
            [errno] => 0
            [error] => 
            [error_list] => Array
                (
                )

            [field_count] => 0
            [host_info] => 127.0.0.1 via TCP/IP
            [info] => 
            [insert_id] => 0
            [server_info] => 5.5.60-MariaDB
            [server_version] => 50560
            [stat] => Uptime: 1845718  Threads: 2  Questions: 210730  Slow queries: 0  Opens: 587  Flush tables: 2  Open tables: 396  Queries per second avg: 0.114
            [sqlstate] => 00000
            [protocol_version] => 10
            [thread_id] => 6008
            [warning_count] => 0
        )

)

session Object
(
    [storage:session:private] => 
    [db:protected] => 
)

在执行以下操作之前,需要调用父构造函数:

class session extends chief {
    public function __construct($address=null) {
        parent::__construct(); // <--- HERE
        var_dump($this->db);
    }
}
类会话扩展了{
公共函数构造($address=null){
父项::_构造();//db);
}
}
从文档中:

注意:如果子类定义构造函数,则不会隐式调用父构造函数。为了运行父构造函数,需要在子构造函数中调用parent::\uu construct()。如果子类没有定义构造函数,那么它可以像普通类方法一样从父类继承(如果它没有声明为private)


您所说的无法访问是什么意思?我看你把东西扔得远远的,不是吗?