从嵌套类中访问类变量


Accessing a class variable from within a nested class

我的类结构如下,

Class Core{
      public $Variable = "Test";
      Class SubClass{
            // functions, etc
      }
      // functions etc
}

我需要从SubClass类中访问变量$variable,但我想不出方法。我尝试过$this->this->Variable,但没有成功。

编辑虽然这是不正确的语法,但这就是我的类系统的设置方式(使用includes实现)。

假设设置了正确的继承模型,就可以使用parent::。但您的代码是一个彻头彻尾的语法错误。你不能那样嵌套类。

Class Core {
   public $var = 'test';
}
Class SubClass Extends Core {
   function foo() {
      $localvar = parent::$var;
   }
}

评论跟进:

也许是更像这样的东西?

class Core {
    public $Variable = 'foo';
    function __construct() {
       $this->subclass = new SubClass($this->variable);
    }
}
class SubClass {
    public $coreVariable;
    function __construct(&$var) {
       $this->coreVariable = $var;
    }
}

我要回答这个问题,因为前面的评论显示了对PHP如何工作以及嵌套类和函数时变量范围的无知,这在PHP中非常好。当在过程代码库中使用包含的第三方类时,这种情况经常发生。

Class Core{
      public $Variable = "Test";
      Class SubClass{
            // functions, etc
            function new()
            {
               global $Variable;// this brings the variable into scope
               echo $Variable;
            {

      }
      // functions etc
}