Skip to content
Advertisement

Set a variable of a class in another class

I have a class address_book in which I want to set $DBConnection using method from another class:

<?php

class address_book
{
    protected $DBConnection;

    public function __construct() 
    {
        $this->DBConnection=new address_book_db();
        $this->init();
    }

    public function init() 
    {   
        add_shortcode('address_book', array($this,'load'));
    }
    public function load() 
    {   
        var_dump($DBConnection);
    }
}

Another class:

<?php

class address_book_db
{
    protected $dbconnection;

    public function __construct() 
    {
        $this->dbconnection='1';
    }

}

So var_dum should return ‘1’ as it has to be assigned to protected $DBConnection; in the first class. I’m starting my learning of PHP OOP so probably everything is bad.

Any way it has to work like this. In first class I load db name which is being loaded from another class using methods which determines db name (not developed yet because I just want to pass this constructed dbname to first class).

Advertisement

Answer

You’re missing $this-> to refer to the class property. The property’s value contains another class, so you have to refer to that class its property as wel with a second ->

var_dump($this->DBConnection->dbconnection)

User contributions licensed under: CC BY-SA
9 People found this is helpful
Advertisement