PHP, фатальная ошибка: вызов неопределенного метода, почему? - PullRequest
2 голосов
/ 21 сентября 2010

У меня есть простые структуры 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 Ответ

14 голосов
/ 21 сентября 2010
function __construct(){   $ingObject = new Ingredient();   }

должно быть

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

В первом случае вы устанавливаете локальную переменную, а не поле, поэтому она остается null.Затем на validateData вы вызываете метод с нулевой переменной.

Я предполагаю, что вы взяли фрагмент кода, потому что ваш класс Ingredient не имеет смысла (там есть переменная $validateне определено).

...