将变量从主类继承到扩展类PHP

将变量从主类继承到扩展类PHP,php,class,variables,object,inheritance,Php,Class,Variables,Object,Inheritance,我试图使子类(feed)从主类(controller)继承一个变量 我有3个文件。它们如下所示 核心文件: /* ----------------------------- * * LOAD THE CONTROLLER CLASS NOW * * ----------------------------- */ require(CORE_PATH . 'controller.php'); require(CORE_PATH . 'load_controller.php');

我试图使子类(feed)从主类(controller)继承一个变量

我有3个文件。它们如下所示

核心文件:

/*  ----------------------------- *
 *  LOAD THE CONTROLLER CLASS NOW *
 *  ----------------------------- */
 require(CORE_PATH . 'controller.php');

 require(CORE_PATH . 'load_controller.php');
控制器类:

<?php

class Controller {

    var $sessions, $a;

    public function __construct() {
        $this->sessions = new Sessions();
        $this->a = 'yo';
    }
}
修复方法:

<?php require(PROTECT);

class Controller {

    protected $variable = "Setting the variable right here works.";

    public function __construct() {
        $this->variable = "Setting it right here will only work for the current object. It's as if variable isn't being set at all when it comes to other classes.";
    }
}

除非您使用PHP4,否则应该避免使用
var
声明类成员。使用公共、私人、受保护的

在您的情况下,由于您使用了
var
,您的成员变量
$a
应该可以从子类访问


是否有错误?

仅仅因为类是相关的,并不意味着单独的对象实例将共享相同的数据。这不是它的工作原理。可能是@deceze的重复-这不是我想要做的。在这种情况下,这些实例并不重要。我只是尝试从Controller类继承$a和$sessions,并将其传递给Feeds类,后者扩展了Controller。当我尝试使用$this关键字访问$a变量时,它不起作用。另外,将变量范围从“var”更改为“Public”或“Public static”或“static”也不起作用。@deceze-事实上,现在我再看一遍,你是对的!我依赖构造函数方法来设置变量的值,而我应该在构造函数方法之前设置它。谢谢我有错误。我尝试过var、public、private、protected以及它们的组合。仍然不起作用。谢谢你。我现在无法查看错误日志,因此stackoverflow是我唯一的选择。英雄联盟
<?php require(PROTECT);

class Controller {

    protected $variable = "Setting the variable right here works.";

    public function __construct() {
        $this->variable = "Setting it right here will only work for the current object. It's as if variable isn't being set at all when it comes to other classes.";
    }
}