Den*_*nis 0 php c++ static-typing this dynamic-typing
为什么C++中的内部类变量可以使用this,但不必,而内部PHP类属性必须使用$this->?
示例C++(可以使用this,但不必)
void setHealth(int h)
{
health = h;
}
Run Code Online (Sandbox Code Playgroud)
示例PHP(必须使用$this->)
public function setHealth($h)
{
$this->health = $h;
}
Run Code Online (Sandbox Code Playgroud)
$this->PHP中是否有任何优缺点?我可以看到,它毫无疑问地澄清了变量确实属于这个特定的类实例,而不是可能是本地范围的变量,但C++在没有这个要求的情况下管理得很好...
C++具有静态类型并需要声明.编译器可以很容易地找出name(health)引用的内容.
在PHP,OTOH,$health = $h;将是模棱两可的.这是局部变量还是类成员变量?请记住,您可以动态地向对象添加属性,因此检查类声明的属性是不够的.