【问题标题】:PHP, Fatal error: Call to undefined method, why?PHP,致命错误:调用未定义的方法,为什么?
【发布时间】:2011-04-15 05:09:57
【问题描述】:

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

我只是不明白为什么会出现错误..

任何帮助将不胜感激。

谢谢!

【问题讨论】:

    标签: php oop class methods undefined


    【解决方案1】:
    function __construct(){   $ingObject = new Ingredient();   }
    

    应该是

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

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

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

    【讨论】:

    • 在构造函数中传递 $ingObject 作为参数可能会更好。
    猜你喜欢
    • 2015-05-13
    • 1970-01-01
    • 2013-06-02
    • 2011-07-17
    • 2015-04-15
    • 1970-01-01
    • 1970-01-01
    • 2018-04-04
    • 2017-04-01
    相关资源
    最近更新 更多