2011-04-10 3 views
1

J'ai une classe que j'utilise pour créer une liste de clients ou un seul client.Comment créer une instance d'une classe avec et sans valeur

je simplement appelle nouveau client(), puis d'appeler la méthode

customer->setCustomerList() 

Puis j'ai décidé de créer un constructeur et définir une customer_id individuelle pour retourner un seul client:

public function __construct($customer_id) 

maintenant mon appel setCustomerList renvoie une erreur car l'appel new Customer() est manquant le customer_id ...

J'ai maintenant cette erreur:

Warning: Missing argument 1 for Suppliers::__construct()

Je sais que si je passe une valeur, il fonctionne, mais ce n'est pas ma question - ma question est de savoir comment puis-je laisser la classe créer une instance sans customer_id? Juste une instance vide PASSANT AUSSI en laissant le constructeur créer une instance avec custoemr_id?

Répondre

4

Modifier la déclaration de votre constructeur de sorte que le paramètre est facultatif, avec une valeur par défaut:

public function __construct($customer_id = null) 

Puis, à l'intérieur de votre constructeur:

  • si $customer_id !== null, utilisez ce paramètre, en tant que valeur a été franchi. Sinon, il n'a pas été passé en paramètre - et donc, n'essayez pas de l'utiliser.


La section pertinente du manuel: Default argument values

1

public function __construct($customer_id = NULL)

donne une valeur par défaut lorsque aucune passe.

Questions connexes