gpt4 book ai didi

php - 在函数中使用关键字 - PHP

转载 作者:IT老高 更新时间:2023-10-28 11:57:09 26 4
gpt4 key购买 nike

Possible Duplicate:
In Php 5.3.0 what is the Function “Use” Identifier ? Should a sane programmer use it?

我一直在研究 PHP 中的闭包,这引起了我的注意:

public function getTotal($tax)
{
$total = 0.00;

$callback =
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);
}

有人请给我解释一下这段代码中 use 的用法。

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

当我在 PHP 中搜索 use 时,它发现 use 关键字在命名空间中使用,但在这里看起来不同。

谢谢。

最佳答案

在这种情况下“使用”的使用也是正确的。

使用闭包,要访问函数上下文之外的变量,您需要使用 use 函数显式授予函数权限。在这种情况下,这意味着您授予函数访问 $tax 和 $total 变量的权限。

您会注意到 $tax 作为 getTotal 函数的参数传递,而 $total 设置在定义闭包的行的上方。

另外需要指出的是,$tax 是作为副本传递的,而 $total 是通过引用传递的(通过在前面附加 & 符号)。通过引用传递允许闭包修改变量的值。在这种情况下,对 $tax 值的任何更改将仅在关闭期间生效,而 $total 的实际值。

关于php - 在函数中使用关键字 - PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6320521/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com