2011-04-10 17 views
1

我有一個類,我用它來創建客戶或單個客戶的列表。如何創建一個有價值和無價值的類的實例

我只是調用新的客戶(),然後調用該方法

customer->setCustomerList() 

然後,我決定創建一個構造函數,並設置一個單獨的CUSTOMER_ID只返回一個客戶:

public function __construct($customer_id) 

現在我的setCustomerList調用會拋出錯誤,因爲new Customer()調用缺少customer_id ...

我現在收到此錯誤:

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

我知道如果我傳遞一個值,它會工作,但是這不是我的問題 - 我的問題是:如何讓班級沒有CUSTOMER_ID創建一個實例?只是一個空的實例WHILE還留下構造函數來創建一個實例與custoemr_id?

回答

4

修改你的構造函數的聲明,使該參數是可選的,默認值:

public function __construct($customer_id = null) 

然後,你的構造函數中:

  • 如果$customer_id !== null,使用該參數,作爲一種價值已通過。
  • 否則,它尚未作爲參數傳遞 - 因此,請勿嘗試使用它。


手冊的相關部分:Default argument values

1

public function __construct($customer_id = NULL)

當沒有被傳遞給人的默認值。

相關問題