在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