在原始示例中$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)
.