2010-12-05 28 views
0

可能重複:
PHP: self vs thisWhen to use self over $thisPHP:這和自我

什麼區別$thisself::

例如之間:

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

確切的重複數據刪除:http://stackoverflow.com/questions/151969/php-self-vs-this – Trufa 2010-12-05 22:26:02

回答

3

$this指對象的實例,而self返回到類本身。使用靜態調用時,請參閱self,因爲您不需要有一個類的實例(即$this)。

+0

僅舉:`self`是一個關鍵字,而不是變量。 – KingCrunch 2010-12-05 22:29:01

+0

@KingCrunch,謝謝,當我發佈我的答案時,我去```瘋了。 – 2010-12-05 22:31:10

2

$this引用對象,其中出現代碼,self是類。你叫「正常」與$this從任何方法中的方法和屬性,並調用靜態方法和屬性與self

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

你的「自我」 - 實例是無效的呢。