Почему внутренние переменные класса в C ++ могут использовать this
, но не нужно, пока внутренние свойства класса PHP должен использование $this->
?
Пример C ++ (можно использовать this
, но не обязан)
void setHealth(int h)
{
health = h;
}
Пример PHP (должен использовать $this->
)
public function setHealth($h)
{
$this->health = $h;
}
Есть ли плюсы / минусы в требовании $this->
в PHP? Я вижу, что это, несомненно, проясняет, что переменная действительно принадлежит этому конкретному экземпляру класса, в отличие от возможной локальной переменной области действия, но C ++ прекрасно справляется без этого требования. , ,
C ++ имеет статическую типизацию и требует объявлений. Компилятор может легко выяснить, как называетсяhealth
) относится к.
В PHP, OTOH, $health = $h;
было бы неоднозначно. Это локальная переменная или переменная члена класса? Помните, что вы можете добавлять свойства к объектам на лету, поэтому проверки свойств, объявленных классом, недостаточно.
Других решений пока нет …