我正在学习 php oop,浏览书籍等并尝试自己尝试。
在我的 __construct 中,我有许多具有默认值的参数(实际上所有参数都有默认值)。但是,当我尝试编写代码来创建新对象时,我遇到了语法错误问题。
例如我的构造语句有 6 个参数。我将值传递给前三个,想跳过接下来的两个并为最后一个设置一个值。我只是简单地在它们之间添加了逗号,但它会引发语法错误。
我应该用什么来代替什么都不接受默认值?
谢谢
传递 NULL 而不是什么都不传递
例子:
$obj = new Whatever($parm1,$parm2,$parm3,NULL,NULL,NULL);
Run Code Online (Sandbox Code Playgroud)
或者在你的构造函数中设置为 null
__construct($parm1 = NULL,$parm2 = NULL,$parm3 = NULL,$parm4 = NULL,$parm5 = NULL,$parm6 = NULL)
Run Code Online (Sandbox Code Playgroud)
并这样称呼它
$obj = new Whatever();
Run Code Online (Sandbox Code Playgroud)
您的评论更新:
你的代码:
function __construct(
$userid,
$magicCookie,
$accessLvl = 'public',
$det = 'basic',
$sortOrder = 'starttime',
$recurring = 'true',
$d_from = "01/01/2011",
$d_to = "31/01/2011",
$max = "10") {
// Code goes here...
}
Run Code Online (Sandbox Code Playgroud)
所以这样调用
// After the seconds parameter you have default values
$obj = new Whatever(
$userid,
$magicCookie
);
Run Code Online (Sandbox Code Playgroud)
你怎么看待这件事?
function __construct(
$userid,
$magicCookie,
$accessLvl = NULL,
$det = NULL,
$sortOrder = NULL,
$recurring = FALSE,
$d_from = NULL,
$d_to = NULL,
$max = NULL) {
// Code goes here... Yes set Defaults if NULL
}
Run Code Online (Sandbox Code Playgroud)
像这样称呼它:
$obj = new Whatever(
$userid,
$magicCookie,
$accessLvl = 'public',
$det = 'basic',
$sortOrder = 'starttime',
$recurring = TRUE,
$d_from = "01/01/2011",
$d_to = "31/01/2011",
$max = 10);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5406 次 |
最近记录: |