我有一个课程,用于创建客户列表或单个客户。
我只是调用新的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的实例?
答案 0 :(得分:4)
修改构造函数的声明,使参数是可选的,默认值为:
public function __construct($customer_id = null)
然后,在你的构造函数中:
$customer_id !== null
,使用该参数,因为已经传递了值。
手册的相关部分:Default argument values
答案 1 :(得分:1)
public function __construct($customer_id = NULL)
在没有传递时给出默认值。