PHPでのそのクラスのすべてのインスタンスに適用するクラス変数を設定する方法はありますか?

StackOverflow https://stackoverflow.com/questions/2379832

  •  24-09-2019
  •  | 
  •  

質問

私はおそらくひどく質問を求めているので、私は例を与えるつもりです。私はこれに似たものがあるクラスを持っています:

class myclass {
   var $template = array();
   var $record = array();

function __construct($template,$record) {
   $this->template = ( set = to a database response here );
   $this->record   = ( set = to a database response here );
}

私の問題は、このオブジェクトを使用している場合、テンプレートは常に同じであるべきである、との記録は、オブジェクトのインスタンスごとに変わるものです。 $テンプレートキャリーの値を持つ方法は、以上の各新しいインスタンスにありますか?

のようなもの
$a = new myclass(1,500);
$b = new myClass(2);

bは$作成する際に、既に生成された$this->templateの値を持っています。たぶん私は完全に間違った角度からこれを近づいています。任意の提案を高く評価した。

役に立ちましたか?

解決

はい。 それは静的のそれクラスのプロパティ

class Counter {
    public static $total = 0;
    public function increment()
    {
         self::$total++;
    }
}
echo Counter::$total; // 0;
$a = new Counter;
$a->increment();
echo $a::$total; // 1;
$b = new Counter;
echo $b::$total; // 1;

注:私はプロパティがsimultaenously両方のインスタンスに適用されることにポイントを説明するために、静的プロパティにアクセスするには$と$ Bを使用。また、そうすることだけに5.3から動作します。この前に、カウンター:: $合計をしなければならないと思います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top