2010-09-21 152 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

相关问题