Code Fix

中級staticプロパティを self:: なしで参照すると別の変数として扱われる › パターン3

staticプロパティを self:: なしで参照すると別の変数として扱われる

クラス内からstaticプロパティにアクセスするには self::$prop のように書く必要があります。

 1  <?php
 2  class Registry {
 3      public static array $items = [];
 4      public function register($item) {
 5          _______________[] = $item;
                   ^
 6      }
 7  }
 8  $r = new Registry();
 9  $r->register("a");
10  echo count(Registry::$items);
出力: 0期待: 1 (Warningすら出ません。配列への追加はエラーなし・警告なしで通ってしまいます)

空欄を埋めて実行を通す

広告
広告スロット(未設定)

staticプロパティを self:: なしで参照すると別の変数として扱われる

$propとだけ書くと、staticプロパティとは無関係のローカル変数として扱われ、Warningが出ます。

このエラーの解説と類題をまとめて見る →

広告
広告スロット(未設定)