Этот question заставлял меня любопытно использовать языковые конструкции в сочетании с магическими методами PHP. Я создал демо-код:
<?php
class Testing {
public function scopeList() {
echo "scopeList";
}
public function __call($method, $parameters) {
if($method == "list") {
$this->scopeList();
}
}
public static function __callStatic($method, $parameters) {
$instance = new static;
call_user_func_array([$instance, $method], $parameters);
}
}
//Testing::list();
$testing = new Testing();
$testing->list();
Почему Testing::list()
выдает синтаксическую ошибку, а $testing->list()
- нет?
Из-за php зарезервированные ключевые слова оба должны потерпеть неудачу?