为什么 [ ] 表示法用于将元素输入到静态数组


why [ ] notation is used to input element to static array

在原始示例中$methods是一个静态数组。它用于将外部函数作为方法分配给类。但是要向这个数组编写器输入新元素,请使用以下表达式

static protected $methods = array();

我从变量声明中删除了 static 关键字并尝试执行代码。

protected  $methods = array();

执行给出以下错误:

致命错误:访问未声明的静态属性:动态::$methods 在 C:''xampp''htdocs''practice''json.php 第 6 行

这个 [ ] 表示法的用途是什么,它与静态关键字有何关系?

原始完整代码:

class Dynamic {
  static protected $methods = array();
  public static function registerMethod($method) {
    self::$methods[] = $method;
  }
  private function __call($method, $args) {
    if (in_array($method, self::$methods)) {
      return call_user_func_array($method, $args);
    }
  }
}
function test() {
  print "Hello World" . PHP_EOL;
}
Dynamic::registerMethod('test');
$d = new Dynamic();
$d->test();

这个 [ ] 表示法的用途是什么,它与静态关键字有何关系?

static[]的使用无关。

代码$array[] = $i是将元素$i推送到数组末尾的简写$array。它也可以写array_push($array, $i).