2016-04-18 17 views
0

はのは、私は次のクラスがあるとしましょう:静的でない静的なクラスプロパティにPHPでアクセスできますか?

class A { 
    public $Foo; 
    public $Foo2; 

    public static function $Current; 

    public static function setCurrent($Foo, $Foo2) { 
     self::$Current=new A($Foo, $Foo2); 
    } 

    public function __construct($Foo, $Foo2) { 
     $this->Foo=$Foo; 
     $this->Foo2=$Foo2; 
    } 

} 

私は次のコードを記述する場合:

A::setCurrent(1,2); 

を任意の可能な方法があり、後でA::$Fooを使用し、A::$Current->Fooの内容を取得するには?

答えて

0

あなたのコードには多少の誤りがあります。

public static setCurrentは、public static function setCurrentであり、public __constructは、public function __constructである必要があります。

これは静的なプロパティではないため、A::$Fooは使用できません。しかし、A::$Current->Fooに電話することができます。

しかし、私の意見では、クラスのデザインが悪いです。カプセル化を使用する必要があります。そして、私はあなたがインスタンスを作成し、それをクラスプロパティに配置する理由を理解していません。

+0

はい、この点を指摘してくれてありがとう、これは私の正確な使用例ではありません。わかりやすい理解のために、もっと簡単なコードがほしいと思っていました。使用例は次のようになります:デフォルトの 'A'クラスが常に定義されます。初期化されたオブジェクトをグローバル変数やすべてに格納せずにすばやくアクセスできますが、さらに多くの' A'クラスがありますコード全体で定義されています。私はそれが書かれているように、それが動作しないことを知っている、私は私の望む結果を達成するために何とか取得する魔法を使用することについて考えています。 –

関連する問題