“$ this-> array []()”是什么意思?

时间:2016-01-19 15:10:11

标签: php arrays function

我无法理解代码,例如: - $this->array[$key]($parameter)

为什么在($parameter)之后有$this->array[$key]

由于

2 个答案:

答案 0 :(得分:6)

作为参考,此处引用的代码片段是以下单行函数:

/**
 * Call a custom driver creator.
 *
 * @param  string  $name
 * @param  array  $config
 * @return mixed
 */
protected function callCustomCreator($name, array $config)
{
    return $this->customCreators[$config['driver']]($this->app, $name, $config);
}

该代码段中由$this->customCreators[$config['driver']]表示的位置保留的值为function。您通常会调用这样的命名函数:

functionName();

打开/关闭括号告诉PHP 调用/执行该函数而不仅仅是引用它,这意味着您可以将该函数传递给单独的函数作为< em>参数像这样:

anotherFunction($this->customCreators[$config['driver']]);

function anotherFunction($creatorFn) {
    $creatorFn();
}
在版本5.3中,

PHP added support用于lambda-style函数(PHP使用术语“匿名”),这时您可以说我们开始将函数视为first-class citizens

答案 1 :(得分:5)

在您引用的代码中,数组包含一个使用指定参数调用的函数。它只是一个常规函数调用,但函数(或者更确切地说是对它的引用)存储在数组中。