我有这个代码:
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是一个数组)
因为类会期望很多参数,我可以很容易地从构造函数返回数组.如果这不是一个好主意,请告诉我.
为什么要尝试在函数参数定义中创建数组?这没有任何意义,你不能这样做.
如果你想$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)
| 归档时间: |
|
| 查看次数: |
979 次 |
| 最近记录: |