当前位置: 首页 > 面试题库 >

匿名函数中的PHP变量

司马高昂
2023-03-14
问题内容

我在玩PHP中的匿名函数,并意识到它们似乎并没有到达它们之外的变量。有什么办法可以解决这个问题?

例:

$variable = "nothing";

functionName($someArgument, function() {
  $variable = "something";
});

echo $variable;  //output: "nothing"

这将输出“无”。匿名函数有什么方法可以访问$variable


问题答案:

是的,使用闭包:

functionName($someArgument, function() use(&$variable) {
  $variable = "something";
});

请注意,为了使您能够$variable在匿名函数范围之外修改和检索修改后的值,必须在闭包中使用对其进行引用&



 类似资料:
  • 我在PHP中使用匿名函数,发现它们似乎无法访问外部变量。有什么办法可以绕过这个问题吗? 示例: 这将输出“nothing”。匿名函数有没有办法访问变量?

  • 本文向大家介绍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