2014-12-03 270 views
0

我需要幫助理解下面的PHP代碼。

$this->_PageHeader = new PAGE_HEADER($this); 

我想了解PAGE_HEADER($ this)中$ this參數的功能。

我知道$這是在一個類內引用屬性和方法,但在這種情況下,將通過此參數傳遞什麼值。

+1

'的var_dump($這個)',你就會知道它 – Rizier123 2014-12-03 08:52:28

+1

它是通過整個對象的構造函數依賴注入。 – 2014-12-03 08:52:48

+1

檢查PAGE_HEADER的構造函數以查看與之相關的內容。 – 2014-12-03 08:56:03

回答

1

$this包含您所在類的當前實例。因此這意味着您將包含代碼$this->_PageHeader = new PAGE_HEADER($this);的類的當前對象傳遞給類PAGE_HEADER的構造函數。

例如:

class A 
{ 
    public $value = 1; 

    public function execute() 
    { 
     $b = new B($this); 
    } 
} 

class B 
{ 
    public $value = 2; 

    public function __construct(A $dep) 
    { 
     echo $dep->value; // 3 
     echo $this->value; // 2 
    } 
} 

$a = new A(); 
$a->value = 3; 
$a->execute(); // In this execution, $this is the object $a. 

此代碼將輸出32

+0

非常感謝。它清除了整個過程。 – 2014-12-03 20:24:38