Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Access parent variable

How should I access this variable ?

class BaseController
{
    public function __construct()
    {
        $view = new Views;
        $view->layout = 'master';
    }
}

So I want to access $view on my other controller

class HomeController extends BaseController
{
    public function showForm()
    {
        // Access $view
    }
}
like image 814
Raggaer Avatar asked Mar 27 '26 10:03

Raggaer


2 Answers

This way you cannot. $view is a local variable in your function. But you can make it a protected property so it is not accessible from the outside but can be inherited:

Members declared protected can be accessed only within the class itself and by inherited and parent classes.

So your class would be like:

class BaseController
{
    protected $view;

    public function __construct()
    {
        $this->view = new Views;
        $this->view->layout = 'master';
    }
}

and then access it:

class HomeController extends BaseController
{
    public function showForm()
    {
        echo $this->view->layout;
    }
}
like image 199
kapa Avatar answered Mar 29 '26 23:03

kapa


class BaseController {
    protected $view = null;
    public function __construct() {
        $view = new Views;
        $view->layout = 'master';
        $this->view = $view;
    }
}
class HomeController extends BaseController {
    public function showForm() {
        // Access $view
        echo parent::$view;
    }
}
like image 26
casraf Avatar answered Mar 29 '26 22:03

casraf



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!