在C ++,PHP,其他语言中使用它

时间:2015-11-11 21:30:41

标签: php c++ this dynamic-typing static-typing

为什么C ++中的内部类变量可以使用this但不必,而内部PHP类属性必须使用$this->

示例C ++(可以使用this,但不必使用)

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

示例PHP(必须使用$this->

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

在PHP中要求$this->是否有任何优缺点?我可以看到,它毫无疑问地澄清了变量确实属于这个特定的类实例,而不是可能是本地范围的变量,但C ++在没有这个要求的情况下管理得很好。 。 。

1 个答案:

答案 0 :(得分:8)

C ++具有静态类型并需要声明。编译器可以很容易地找出名称(health)所指的内容。

在PHP中,OTOH,$health = $h;将是模棱两可的。这是局部变量还是类成员变量?请记住,您可以动态地向对象添加属性,因此检查类声明的属性是不够的。