Использование этого в C ++, PHP, других языках

Почему внутренние переменные класса в C ++ могут использовать this, но не нужно, пока внутренние свойства класса PHP должен использование $this->?

Пример C ++ (можно использовать this, но не обязан)

void setHealth(int h)
{
health = h;
}

Пример PHP (должен использовать $this->)

public function setHealth($h)
{
$this->health = $h;
}

Есть ли плюсы / минусы в требовании $this-> в PHP? Я вижу, что это, несомненно, проясняет, что переменная действительно принадлежит этому конкретному экземпляру класса, в отличие от возможной локальной переменной области действия, но C ++ прекрасно справляется без этого требования. , ,

0

Решение

C ++ имеет статическую типизацию и требует объявлений. Компилятор может легко выяснить, как называетсяhealth) относится к.

В PHP, OTOH, $health = $h; было бы неоднозначно. Это локальная переменная или переменная члена класса? Помните, что вы можете добавлять свойства к объектам на лету, поэтому проверки свойств, объявленных классом, недостаточно.

8

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]