我发现下面的片段非常令人困惑。Snippet 1 是直截了当的,每个人都知道它。其他两个片段有什么作用?它们的意义是什么,出于什么原因使用它们?
# Snippet 1
public function __construct (array $items) {
$this->items = $items;
}
# Snippet 2
public function __construct (array $items) {
$this->items = function () use ($items) {
return $items;
};
}
# Snippet 3
public function __construct (array $items) {
$this->items = (function (...$items) {
return $items;
})(...$items);
}
片段 1 和 3 将为您提供类似的结果,除了$this->items
第三个片段中的数组不包含任何原始键。
Snippet 2 是更有趣的一个,因为它将包含一个匿名函数而不是一个值。如果你想推迟一些昂贵的输入操作,你可以使用它,而不是用于所有执行路径。您还可以保留每个调用的原始输入,如果您需要对输入执行各种转换,这将非常有用,但每个转换都需要访问“原始”输入。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句