2010-09-21 10 views
2

J'ai une structure php simple.PHP, Erreur fatale: Appel à une méthode non définie, pourquoi?

classe des ingrédients et des ingrédients classe, j'ai ce code:

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(); 

Je ne peux pas comprendre pourquoi puis-je obtenir l'erreur ..

toute aide sera appréciée.

merci!

Répondre

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

devrait être

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

Dans le premier cas, vous définissez une variable locale, pas un champ, il reste null. Ensuite, sur le validateData, vous appelez une méthode sur une variable null.

Je suppose que vous avez coupé du code, parce que votre classe Ingredient n'a pas de sens (il y a une variable $validate qui n'est pas définie).

+0

yep, aussi juste remarqué que 1 + 1 est 2, merci :) – yossi

+0

Et il serait probablement préférable de transférer $ ingObject comme argument dans le constructeur. – smentek