PHP,致命错误:调用未定义的方法,为什么?
问题描述:
我有一个简单的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();
我只是不明白为什么我得到的错误..
任何帮助将不胜感激。
谢谢!
答
function __construct(){ $ingObject = new Ingredient(); }
应该是
function __construct(){ $this->ingObject = new Ingredient(); }
在你设置一个局部变量,而不是一个领域的第一案,所以它仍然null
。然后在validateData
上调用一个null变量的方法。
我假设你剪下了一些代码,因为你的Ingredient
类没有意义(有一个$validate
变量,那里没有定义)。
是的,也只是注意到1 + 1是2,谢谢:) – yossi 2010-09-21 13:55:38
它可能会更好地将$ ingObject作为参数传递给构造函数。 – smentek 2010-09-21 19:45:33