1

私のクラス構造は次のとおりです。

Class Core{
      public $Variable = "Test";

      Class SubClass{
            // functions, etc

      }

      // functions etc
}

SubClass クラス内から変数 $Variable にアクセスする必要がありますが、それを行う方法が思いつきません。私は$this->this->Variable成功せずに試しました。

編集これは間違った構文ですが、これが私のクラスシステムのセットアップ方法です(インクルードを使用して実現されます)。

4

2 に答える 2

2

適切な継承モデルが設定されていると仮定すると、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;
    }
}
于 2013-07-23T21:44:36.410 に答える
0

以前のコメントは、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
}
于 2015-03-14T10:07:03.593 に答える