在Symfony编译容器并将其转储到缓存文件夹后,它向我们提供了一个包含许多代表服务的函数的类。编译Symfony容器php语法
我从来没有见过这之前语法,不知道那个特定的lambda函数实际上返回:
protected function getDebug_EventDispatcherService()
{
// ...
$instance->addListener('kernel.controller', array(0 => function() {
return ${($_ = isset($this->services['data_collector.router']) ? $this->services['data_collector.router'] : $this->get('data_collector.router')) && false ?: '_'};
}
// ...
);
return $instance;
}
首先:这是什么语法return ${...}
以及它是如何工作的?我知道这叫做Complex (curly) syntax,但这里不是字符串的一部分,对吗?
秒:花括号内的逻辑表达式基本上是以下${(//...) && false ?: '_'}
。为什么我们在那边需要那个false
?
请解释我在这里失踪的内容。
第一部分是一个变量http://php.net/manual/en/language.variables.variable.php对表达式的评价还不太确定 – Steve