php oop构造可选参数语法错误

Ray*_*Ray 1 php oop construct

我正在学习 php oop,浏览书籍等并尝试自己尝试。

在我的 __construct 中,我有许多具有默认值的参数(实际上所有参数都有默认值)。但是,当我尝试编写代码来创建新对象时,我遇到了语法错误问题。

例如我的构造语句有 6 个参数。我将值传递给前三个,想跳过接下来的两个并为最后一个设置一个值。我只是简单地在它们之间添加了逗号,但它会引发语法错误。

我应该用什么来代替什么都不接受默认值?

谢谢

Phi*_*ord 5

传递 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)