2010-09-21 148 views
2

我有一個簡單的PHP結構。PHP,致命錯誤:調用未定義的方法,爲什麼?

類成分和原料類,我有這樣的代碼:

class Ingredient 
{ 
    public function objectIsValid() 
    { 
     return $validate[0]; 
    } 
} 



class Ingredients 
{ 
    public $ingObject; 
    function __construct(){ $ingObject = new Ingredient(); } 

    public function validateData() 
    { 
     if($this->ingObject->objectIsValid()  /*** THE ERROR ***/) 
    { echo "OK";} 
     else 
    { echo "NOT";} 
    } 
} 


$Ingridients = new Ingredients(); 


$Ingridients->validateData(); 

我只是不明白爲什麼我得到的錯誤..

任何幫助將不勝感激。

謝謝!

回答

14
function __construct(){ $ingObject = new Ingredient(); } 

應該是

function __construct(){ $this->ingObject = new Ingredient(); } 

在你設置一個局部變量,而不是一個領域的第一案,所以它仍然null。然後在validateData上調用一個null變量的方法。

我假設你剪下了一些代碼,因爲你的Ingredient類沒有意義(有一個$validate變量,那裏沒有定義)。

+0

是的,也只是注意到1 + 1是2,謝謝:) – yossi 2010-09-21 13:55:38

+0

它可能會更好地將$ ingObject作爲參數傳遞給構造函數。 – smentek 2010-09-21 19:45:33

相關問題