2009-07-19 26 views
1

我是PHP新手,面向對象編程。我包含一個類並調用它,然後,在這個類的構造函數中,我調用一個名爲handleConnections的私有函數。出於某種原因,它給了我一個致命的錯誤(未定義函數)。任何想法爲什麼?致命錯誤:未定義函數 - 爲什麼?

類:

class Test 
{ 
    function __construct() 
    { 
     handleConnections(); 
    } 

    private function handleConnections() 
    { 
     //do stuff 
    } 
} 

似乎完美無瑕,但我得到這個錯誤。如果任何人有任何線索可能是錯誤的,請告訴我。謝謝!

回答

4

只是擴大FWH的答案。

當您創建一個類並將其分配給變量時,您可以使用$ variable-> function();從類外部調用該類中的任何函數。但是,因爲你在類內部,所以你不知道類被分配了什麼,所以你必須使用$ this->關鍵字來訪問任何類的屬性。一般的經驗法則,如果你想像$ obj-> var那樣訪問它,可以用$ this->來訪問它。

class myClass 
{ 
    function myFunc() 
    { 
     echo "Hi"; 
    } 

    function myOtherFunc() 
    { 
     $this->myFunc(); 
    } 

} 


$obj = new myClass; 

// You access myFunc() like this outside 
$obj->myFunc(); 

// So Access it with $this-> on the inside 
$obj->myOtherFunc(); 

// Both will echo "Hi" 
+0

在適當的面向對象的語言如Java,從一個類,你可以調用它的方法和字段,而無需使用此 – 2009-07-19 15:45:41

4

嘗試用:

$this->handleConnections(); 

如果沒有前綴$這種通話,它試圖調用全局函數。 $這在PHP中是強制性的,即使在沒有歧義的情況下也是如此。

相關問題