在PHP中,什么是闭包?为什么要使用“ use”标识符?

我正在检查一些PHP 5.3.0功能,并在网站上浏览了一些看起来很有趣的代码:

public function getTotal($tax)

{

$total = 0.00;

$callback =

/* This line here: */

function ($quantity, $product) use ($tax, &$total)

{

$pricePerItem = constant(__CLASS__ . "::PRICE_" .

strtoupper($product));

$total += ($pricePerItem * $quantity) * ($tax + 1.0);

};

array_walk($this->products, $callback);

return round($total, 2);

}

作为匿名函数的例子之一。

有人知道吗?有文件吗?而且看起来很邪恶,应该使用它吗?

回答:

这就是PHP表示闭包的方式。这根本不是邪恶的,实际上它是强大而有用的。

基本上,这意味着您要允许匿名函数在其作用域之外“捕获”局部变量(在这种情况下$tax$total),并将其值(或在$total引用其$total自身的情况下)保留为内部状态匿名函数本身。

以上是 在PHP中,什么是闭包?为什么要使用“ use”标识符? 的全部内容, 来源链接: utcz.com/qa/398224.html

回到顶部