方法参数

时间:2017-06-12 17:15:36

标签: php class arguments

我在互联网上发现了一个php类,它在方法参数中使用了数组$ options = []:

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 = []是什么意思以及错误抛出的原因?

1 个答案:

答案 0 :(得分:0)

那是default argument value。这是你声明一个参数是可选的,如果没有提供,它默认应该具有什么值。

function add($x, $y = 5) {
    return $x + $y;
}

echo add(5, 10); // 15
echo add(7); // 12

对于数组注释,即type hint(也称为类型声明),这意味着您必须将函数传递给数组,否则将引发错误。类型提示在动态语言中相当复杂且有必要,但它可能值得了解。

function sum(array $nums) {
    return array_sum($nums);
}

echo sum([1, 2, 3]); // 6
echo sum(5); // throws an error

注意:如果默认参数值为null,则只能将类型提示与默认参数值组合在一起。