中級 › staticプロパティを self:: なしで参照すると別の変数として扱われる › パターン2
staticプロパティを self:: なしで参照すると別の変数として扱われる
クラス内からstaticプロパティにアクセスするには self::$prop のように書く必要があります。
1 <?php 2 class Money { 3 public static int $total = 0; 4 public function add($n) { 5 _____________ += $n; ^ 6 } 7 } 8 $m = new Money(); 9 $m->add(100); 10 echo Money::$total;
出力:
Warning: Undefined variable $total in main.php on line 5
0期待: 100 (Warningが出るだけで実行は止まりません)
空欄を埋めて実行を通す
self::を付けなければ、$totalはstaticプロパティとは別のローカル変数です。Money::$totalは更新されず0のままになります。
次の問題