【发布时间】:2015-11-11 21:30:41
【问题描述】:
为什么 C++ 中的内部类变量可以使用this,但不是必须的,而 PHP 内部类属性必须使用$this->?
示例 C++(可以使用 this,但不是必须)
void setHealth(int h)
{
health = h;
}
PHP 示例(必须使用$this->)
public function setHealth($h)
{
$this->health = $h;
}
在 PHP 中要求 $this-> 有什么优点/缺点吗?我可以看到它毫无疑问地澄清了该变量确实属于这个特定的类实例,而不是可能是一个局部范围的变量,但是 C++ 在没有这个要求的情况下管理得很好。 . .
【问题讨论】:
-
在C++中
this是一个指向类的指针,所以如果你定义类和setHealth作为这个类的方法你可以使用this->health = h;,但是这个可以跳过 -
BTW、Perl、Python、Javascript 以及可能的其他一些脚本 语言也需要使用
this(或self)。我认为它是为提高解析器速度而设计的。 -
这里已经在一定程度上解决了这个问题:stackoverflow.com/questions/912312/…
-
甚至一些 C++ 程序员也使用
var_表示成员变量。它使代码更易于阅读(对于人类,即编译器不在乎)。
标签: php c++ this dynamic-typing static-typing