1

可能重复:
PHP:self 与 this以及 何时在 $this 上使用 self

$this和有什么区别self::

例子:

class Object{
   public $property;
   function doSomething(){
        // This
        $something = $this->property;
        // Self
        $something = self::property;
        ...code...
   }
}
4

3 回答 3

3

$this引用对象的实例,而self返回类本身。使用静态调用时,您之所以引用它,是self因为您不需要拥有类的实例(即$this)。

于 2010-12-05T22:27:58.183 回答
2

$this引用了代码出现的对象,self就是类。$this您可以在任何方法中调用“常规”方法和属性,并使用以下方法调用静态方法和属性self

class A {
    public static $staticVar = 'abc';
    public $var = 'xyz';
    public function doSomething () {
        echo self::$staticVar;
        echo $this->var;
    }
}

无论如何,您的“自我”示例都是无效的。

于 2010-12-05T22:28:26.807 回答
1

取自这里

链接:http ://www.phpbuilder.com/board/showthread.php?t=10354489 :

使用 $this 来引用当前对象。使用 self 来引用当前类。换句话说,对非静态成员使用 $this->member,对静态成员使用 self::$member。

约翰米利金在这里回答

于 2010-12-05T22:29:31.987 回答