我在PHP中使用匿名函数,并意识到它们似乎无法访问它们之外的变量.

例子:

$variable = "nothing";

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

echo $variable;  //output: "nothing"

这将输出"无".匿名函数有没有办法访问$variable

推荐答案

是的,use a closure:

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

请注意,为了能够在匿名函数的作用域之外修改$variable和检索修改后的值,必须使用&在闭包中引用它.

Php相关问答推荐

Laravel 10查询中的多个where子句

通过激活模板在数据库中创建表

致命错误:未捕获错误:Google\Auth\HttpHandler\HttpHandlerFactory::build()

在WooCommerce我的帐户部分添加带有自定义链接的自定义菜单项

当主页和帖子的缩略图相同时,如何减少主页和帖子的缩略图

莫德克斯.当我try 使用pThumb为手机压缩图像时,没有任何react

PHP-准备用于TCP套接字的数据包

模仿GUZLE中的curl 工作脚本(分块数据和二进制上传一起)

在WooCommerce管理中为订单项目添加自定义字段价格值

无额外字段的Laravel同步

是否有条件判断是否发布了另一个Wordpress页面?

使用简码在 WooCommerce 我的帐户中显示一些用户数据

订单完成后创建 WooCommerce 促销代码

Laravel 添加到经过身份验证的用户的数据将应用于每个查询

Laravel的Storage::exists返回false,而file_exists返回true.

php/html OnSubmit 禁用输入类型提交未给出预期结果

为什么在解压缩具有混合字符串和 int 键的关联数组时出现错误消息无法使用位置参数...?

PDO 和 SQL 查询结果中日期格式不同的原因可能是什么?

如何将数字文本文件添加到 PHP 数学方程式中?

路由未定义的 laravel 导出