PHP,致命错误:调用未定义的方法,为什么?

时间:2010-09-21 13:28:06

标签: php oop class methods undefined

我有一个简单的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();

我只是无法理解为什么我会收到错误..

任何帮助将不胜感激。

谢谢!

1 个答案:

答案 0 :(得分:14)

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

应该是

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

在第一种情况下,您设置的是局部变量,而不是字段,因此它仍为null。然后在validateData上调用null变量的方法。

我假设你剪断了一些代码,因为你的Ingredient类没有意义(那里有一个$validate变量没有定义。)