this 在 C++、PHP、其他语言中的用法
Usage of this in C++, PHP, other languages
为什么C++中的内部class变量可以使用this
,但不是必须的,而内部PHPclass属性必须 使用 $this->
?
示例 C++(可以使用 this
,但不是必须)
void setHealth(int h)
{
health = h;
}
示例PHP(必须使用$this->
)
public function setHealth($h)
{
$this->health = $h;
}
在PHP中有没有pros/cons要求$this->
?我可以看到它毫无疑问地澄清了变量确实属于这个特定的 class 实例,而不是可能是局部范围的变量,但是 C++ 在没有这个要求的情况下管理得很好。 . .
C++ 具有静态类型并且需要声明。编译器可以很容易地找出名称 (health
) 指的是什么。
在 PHP 中,OTOH,$health = $h;
会产生歧义。那是局部变量还是 class 成员变量?请记住,您可以动态地向对象添加属性,因此检查 class 声明的属性是不够的。
为什么C++中的内部class变量可以使用this
,但不是必须的,而内部PHPclass属性必须 使用 $this->
?
示例 C++(可以使用 this
,但不是必须)
void setHealth(int h)
{
health = h;
}
示例PHP(必须使用$this->
)
public function setHealth($h)
{
$this->health = $h;
}
在PHP中有没有pros/cons要求$this->
?我可以看到它毫无疑问地澄清了变量确实属于这个特定的 class 实例,而不是可能是局部范围的变量,但是 C++ 在没有这个要求的情况下管理得很好。 . .
C++ 具有静态类型并且需要声明。编译器可以很容易地找出名称 (health
) 指的是什么。
在 PHP 中,OTOH,$health = $h;
会产生歧义。那是局部变量还是 class 成员变量?请记住,您可以动态地向对象添加属性,因此检查 class 声明的属性是不够的。