我在PHP中使用匿名函数,发现它们似乎无法访问外部变量。有什么办法可以绕过这个问题吗?
示例:
$variable = "nothing";
functionName($someArgument, function() {
$variable = "something";
});
echo $variable; //output: "nothing"
这将输出“nothing”。匿名函数有没有办法访问变量?
如果您的函数很短并且是单线性的,您可以使用箭头函数,从PHP 7.4开始:
$variable = "nothing";
functionName($someArgument, fn() => $variable = "something");
是的,使用闭包:
functionName($someArgument, function() use(&$variable) {
$variable = "something";
});
请注意,为了使您能够修改$变量
并在匿名函数范围之外检索修改后的值,必须使用在闭包中引用它
问题内容: 我在玩PHP中的匿名函数,并意识到它们似乎并没有到达它们之外的变量。有什么办法可以解决这个问题? 例: 这将输出“无”。匿名函数有什么方法可以访问? 问题答案: 是的,使用闭包: 请注意,为了使您能够在匿名函数范围之外修改和检索修改后的值,必须在闭包中使用对其进行引用。
本文向大家介绍PHP匿名函数,包括了PHP匿名函数的使用技巧和注意事项,需要的朋友参考一下 介绍 匿名函数是没有任何用户定义名称的函数。这样的函数也称为闭包或lambda函数。有时,您可能希望功能一次使用。Closure是一个匿名函数,它在定义它的环境中关闭。您需要在其中指定use关键字。匿名函数的最常见用法是创建内联回调函数。 语法 在function关键字和左括号之间没有函数名称。 函数定义后
php版本: 5.4 我定义了一个这样的函数 输出是 如何在的正文中引用。
问题内容: 是否可以具有递归和匿名的PHP函数?这是我尝试使其工作,但未传入函数名称。 我还知道这是实现阶乘的一种不好方法,这只是一个例子。 问题答案: 为了使其正常工作,您需要传递$ factorial作为参考
本文向大家介绍PHP中的闭包(匿名函数)浅析,包括了PHP中的闭包(匿名函数)浅析的使用技巧和注意事项,需要的朋友参考一下 闭包也叫匿名函数 PHP5.3 引入。 使用方法 需要调整数组元素中的值 需要改变元素的结构 执行效率 经过5W次执行之后,从结果看1-3,大部分情况执行时间依次升高,其中一次执行结果时间如下 结论 闭包的代码相对优雅,但是逻辑比较容易混淆,相比其他方式执行效率相对较低,要慎
本文向大家介绍Python中的匿名函数,包括了Python中的匿名函数的使用技巧和注意事项,需要的朋友参考一下 这些函数被称为匿名函数,因为它们不是通过使用def关键字以标准方式声明的。您可以使用lambda关键字创建小的匿名函数。 Lambda形式可以接受任意数量的参数,但仅以表达式形式返回一个值。它们不能包含命令或多个表达式。 匿名函数不能直接调用print,因为lambda需要一个表达式 L