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