如何创建具有和不具有值的类的实例

时间:2011-04-10 10:08:51

标签: php class

我有一个课程,用于创建客户列表或单个客户。

我只是调用新的Customer()然后调用方法

customer->setCustomerList()

然后我决定创建一个构造函数并设置一个单独的customer_id来返回一个客户:

public function __construct($customer_id)

现在我的setCustomerList调用抛出了一个错误,因为new Customer()调用缺少customer_id ......

我现在收到此错误:

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

我知道如果我传递一个值它会起作用但这不是我的问题 - 我的问题是如何让这个类创建一个没有customer_id的实例?只是一个空实例,而且还留下构造函数来创建一个带有custoemr_id的实例?

2 个答案:

答案 0 :(得分:4)

修改构造函数的声明,使参数是可选的,默认值为:

public function __construct($customer_id = null)

然后,在你的构造函数中:

  • if $customer_id !== null,使用该参数,因为已经传递了值。
  • 否则,它尚未作为参数传递 - 因此,请勿尝试使用它。


手册的相关部分:Default argument values

答案 1 :(得分:1)

public function __construct($customer_id = NULL)

在没有传递时给出默认值。