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