Почему внутренние переменные класса на C++ используют this
, но не нужно, в то время как внутренние свойства класса PHP должен использовать $this->
?Использование этого в C++, PHP, других языках
Пример C++ (можно использовать this
, но не должен)
void setHealth(int h)
{
health = h;
}
Пример PHP (необходимо использовать $this->
)
public function setHealth($h)
{
$this->health = $h;
}
Есть ли какие-либо плюсы/минусы требует $this->
в PHP ? Я вижу, что он не вызывает сомнений в том, что переменная принадлежит к этому конкретному экземпляру класса, противоположному, возможно, являющейся локальной облачной переменной, но C++ отлично справляется без этого требования. , ,
В C++ 'this' является указателем на класс, поэтому, если вы определяете класс и' setHealth' как метод этого класса, вы можете использовать 'this-> health = h;', но это может быть пропущено – VolAnd
BTW, Perl , Python, Javascript и, возможно, некоторые другие языки * для сценариев * также имеют требование использовать 'this' (или' self'). Я думаю, что это было сделано для скорости парсера. – vladon
Это в некоторой степени адресовано: http://stackoverflow.com/questions/912312/why-is-the-usage-of-this-in-php-necessary-when-referencing-methods-or-variables – Dracony