意外的'[',期待')' - 构造函数中的数组

ice*_*eea 0 php

我有这个代码:

class foo
{
    public function __construct
    (
        $bar[var1]  = 0,
        $bar[var2]  = 0,
        $bar[var3]  = 0
    )
    {
        /* do something */
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

解析错误:语法错误,第5行$ this中的意外'[',期待')'

我不知道什么是错的.

编辑:

我想像这样初始化类:$instance = new foo($bar) ($ bar是一个数组)

因为类会期望很多参数,我可以很容易地从构造函数返回数组.如果这不是一个好主意,请告诉我.

Thi*_*ter 8

为什么要尝试在函数参数定义中创建数组?这没有任何意义,你不能这样做.

如果你想$bar成为一个参数,但确保存在一些值(即默认值),请这样做:

public function __construct($bar)
{
    if(!isset($bar['var1'])) $bar['var1'] = 0;
    if(!isset($bar['var2'])) $bar['var2'] = 0;
    if(!isset($bar['var3'])) $bar['var3'] = 0;

    /* do something */
}
Run Code Online (Sandbox Code Playgroud)

或者以更紧凑的方式:

public function __construct($bar)
{
    $bar = array_merge(array('var1' => 0, 'var2' => 0, 'var3' => 0), $bar);
    /* do something */
}
Run Code Online (Sandbox Code Playgroud)