上級 › staticを付け忘れると、インスタンス間でプロパティが共有されない › パターン2
staticを付け忘れると、インスタンス間でプロパティが共有されない
インスタンスをまたいで値を共有したい場合はstaticプロパティが必要です。
1 <?php 2 class Registry { 3 public _________int $total = 0; ^ 4 public function add($n) { 5 self::$total += $n; 6 } 7 } 8 $a = new Registry(); 9 $b = new Registry(); 10 $a->add(10); 11 $b->add(5); 12 echo Registry::$total;
Fatal error: Uncaught Error: Access to undeclared static property Registry::$total in main.php:5
空欄を埋めて実行を通す
staticの無い$totalをself::$totalとして扱おうとすると、静的プロパティが宣言されていないため致命的エラーになります。全インスタンスで共有したい値にはstaticが必要です。
次の問題