2014年5月14日 星期三

[PHP]self和$this的差異

(1).self是參照到目前的class,$this是參照到目前的object ( 已經被宣告的實體上 )

(2).self 可使用在static上,$this不行

static method 因為沒有物件的實體,所以需要注意不可以使用 $this ,要用self::
可以直接存取 static method ( 如self::method() ),但是無法直接存取 static property 中的預先宣告的值


(3). 可用 new self() 呼叫自己


以下是(1)的範例:
<?
class name
{
  
    public $name;
  
    public function getname(){
        return $this->name = "mick";
    }

    public function getnamebythis(){
        return $this->getname();
    }

    public function getnamebyself(){
        return self::getname();
    }
}

class name2 extends name{
    

    public function getname(){
        return $this->name = "jeff";
    }
}

$newname = new name2();
echo $newname->getnamebythis() . "<br/>"; //
出現的是mick
echo $newname->getnamebyself() . "<br/>"; // 出現的是jeff
?>
原文:http://miggo.pixnet.net/blog/post/30799978-%5Bphp%E8%A7%80%E5%BF%B5%5Dself%E5%92%8C$this%E7%9A%84%E5%B7%AE%E7%95%B0

沒有留言:

張貼留言

Google Analytics初學者入門簡介