Почему PHP требует, чтобы вы явно писали $this
? Я бы понял, если бы вам пришлось использовать $this
здесь:
function foo($bar) {
$this->bar = $bar;
}
Но вы должны написать это явно в подробном коде, который выглядит следующим образом:
$this->var3 = globalFun($this->var, $this->var2[$this->anotherVar], $this->method());
в отличие от:
$var3 = globaFun($var, $var2[$anotherVar], method());
Итак, какова точка $this
?
Дополнительный бонусный вопрос:
Почему мы должны различать статические ссылки и экземпляры? Зачем нам нужно:
static function getValue() {
return self::value;
}
Не удается ли узнать PHP во время выполнения, если рассматриваемая переменная/метод статична? Теперь, если я хочу изменить метод от статического до нестатического, я должен заменить все те self::
на $this->
(и наоборот).
Не было бы лучше, если бы у нас был $this
, который ведет себя так же, как в Java?