2011-06-13 147 views
-1

可能重複:
What does $this mean in PHP?

什麼用的$this
我在以下兩種情況下都能正確得到結果。

  1. 沒有$this

    class Car { 
        function Beetle($colour) { 
        return $colour; 
        } 
    } 
    
    $car = new Car(); 
    
    echo $car->Beetle("Blue"); 
    
  2. 隨着$this

    class Car { 
        function Beetle($colour) { 
        $this->colour = $colour; 
        return $colour; 
        } 
    } 
    
    $car=new Car(); 
    
    echo $car->Beetle("Blue"); 
    

在這兩種情況下,我得到了相同的結果: 「藍色」。
我不明白爲什麼和我們所使用$this

+4

http://www.php.net/manual/en/language.oop5.basic.php – BoltClock 2011-06-13 08:31:44

回答

2

$this是指用所述new操作者創建的實例化的對象。

你的第一個代碼示例僅返回傳遞給它的參數($colour)。

你的第二示例中的屬性分配給它的對象($this),然後再次返回參數。

+0

你可以請簡單的英語回答這個問題 我告訴過你,我是一個新手。 我知道程序的PHP非常好,甚至創造Buysellads 的一個微小的克隆,但這個問題被爆破我mind.please幫助alex.pls 請盡你所能 – Mixin 2011-06-13 08:38:15

+0

@ask哪一部分的它讓你感到困惑? – alex 2011-06-13 08:53:12

0

因爲你可以有相同的類的多個實例(對象)。

class Car { 
    var colour; 
    var parkedNextTo; 
    function setColout($colour) 
    { 
     $this->colour=$colour; 
    } 
    function park($nextTo) 
    { 
     $this->$nextTo=$nextTo; 
    } 
} 

$beetle=new Car(); 
$beetle->setColour('blue'); 

$jeep=new Car(); 
$jeep->setColour('red'); 
$jeep->nextTo($beetle); 
1

至於我understannd $此用於訪問你在類變量和方法,它本質上是一個類的對象。無論如何,你的例子都是返回輸入參數。

沒有$此;

class Car{ 

    private $colour; 

    function Beetle($colour) { 
    return $this->colour; 
    } 
} 

隨着$這個;

class Car{ 

    private $colour; 

    function Beetle($colour) { 
    $this->colour = $colour; 
    return $this->$colour; 
    } 
} 

我想要你在這裏展示的是,在第一個例子中的屬性顏色沒有被功能,wheras第二個例子是將該屬性設置爲輸入設置將返回null變量並將返回傳入的值。

總之,$ this是我們如何訪問屬於該類的屬性和方法。

+0

非常感謝你們,我明白了! :) – Mixin 2011-06-13 17:19:31