$this
和self::
示例:
class Object{
public $property;
function doSomething(){
// This
$something = $this->property;
// Self
$something = self::property;
...code...
}
}
答案 0 :(得分:3)
$this
引用对象的实例,而self
返回类本身。使用静态调用时,请参考self
,因为您不需要拥有类的实例(即$this
)。
答案 1 :(得分:2)
$this
引用代码出现的对象,self
是类。您可以在任何方法中使用$this
调用“常规”方法和属性,并使用self
class A {
public static $staticVar = 'abc';
public $var = 'xyz';
public function doSomething () {
echo self::$staticVar;
echo $this->var;
}
}
无论如何,您的“自我”示例无效。
答案 2 :(得分:1)
从这里采取
链接:http://www.phpbuilder.com/board/showthread.php?t=10354489:
使用$ this来指代当前 宾语。用self来指代 现在的课程。换句话说,使用 $ this->非静态成员的成员, 将self :: $ member用于静态成员。
John Millikin回答here