【发布时间】:2017-11-14 06:26:56
【问题描述】:
我在网上找到了一个在方法参数中使用数组 $options = [] 的 php 类:
class TADFactory
{
private $options;
public function __construct(array $options = [])
{
$this->options = $options;
}
//some other methods here
}
在 page.php 文件中
$tad_factory = new TADFactory(['ip'=>'192.168.0.1']);
//some other stuffs here
但是在浏览器中执行page.php文件后,却显示:
Unexpected `[` in page.php file at line 1, expecting `)`....
但是根据php库文档,我必须通过这种方式在参数中使用多维数组。
我不明白 TADFactory 类参数中的 array $options = [] 是什么意思以及为什么会抛出错误?
【问题讨论】:
-
你运行的是什么版本的 PHP?
-
array是强制您传递数组的类型提示,= []将$options设置为空数组(默认)。 -
这种短数组语法是在 PHP 5.4 中引入的。如果您运行的是旧版本,则需要将其更改为使用
array $options = array()和$tad_factory = new TADFactory(array('ip'=>'192.168.0.1'));。 -
如果是这种情况,您将不得不更改
TADFactory(['ip'=>'192.168.0.1']);以使用旧语法,并且可能还有很多“新”数组语法的其他用法。