PHP:这和自我

时间:2010-12-05 22:23:45

标签: php static self

  

可能重复:
  PHP: self vs this和   When to use self over $this

$thisself::

之间有什么区别

示例:

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

3 个答案:

答案 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