如何使用带有预定义参数的PHP闭包

托斯坎

我想要实现的是:

$x = 5;
$b = function ($x) {
    echo 'This should be 5 :' . $x;
};
function a($fn){
    echo 'In a ';
    $fn();
}
a($b);

当您运行此代码时,我们得到

在一个

这应该是5:5

相反,我们得到的是

警告:缺少{closure}()的参数1,该参数在第10行的writecodeonline.com/php中调用,并在第3行定义。应为5

我不想重新定义我已经定义的参数

我也不希望隐藏$ x。我不想更改其可见性。

有办法吗?

订婚

阅读文档:您可以use为其使用表达式:

$x = 5;

$b = function () use ($x) {
    echo 'This is x: ' . $x . "\n";
};

$b();

$c = function ($fn) {
    echo 'In c: ';
    $fn();
};

$c($b);
$x = 10;
$c($b);

输出:

This is x: 5
In c: This is x: 5
In c: This is x: 5

请注意,尽管$x以后进行了更改,但分配的值不会更改。如果通过引用传递变量,则可以实现:

$x = 5;

$b = function () use (&$x) { // << Note the difference here
    echo 'This is x: ' . $x . "\n";
};

$b();

$c = function ($fn) {
    echo 'In c: ';
    $fn();
};

$c($b);
$x = 10;
$c($b);

输出:

This is x: 5
In c: This is x: 5
In c: This is x: 10

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PHP闭包:使用带有函数定义的关键字:要使用的对象参数:未复制的参数

来自分类Dev

如何在不使用闭包的情况下定义带有参数的回调,并在PHP中使用它?

来自分类Dev

快速使用带有多个参数的闭包

来自分类常见问题

如何创建闭包调用带有较少参数的闭包迅速

来自分类Dev

如何创建闭包调用带有较少参数的闭包迅速

来自分类Dev

带有可选闭包的参数

来自分类Dev

数组内部带有参数的闭包

来自分类Dev

如何快速使用可变参数闭包?

来自分类Dev

Swift:重用闭包定义(带有typealias)

来自分类Dev

如何在PHP闭包中使用$ this?

来自分类Dev

如何在PHP闭包中使用$ this?

来自分类Dev

如何使用带有闭包的NSURLSessionTask优雅地处理方法中的错误?

来自分类Dev

推导PHP闭包参数

来自分类Dev

当使用带有Rc的闭包时,无法借用Fn闭包中捕获的外部变量

来自分类Dev

在带有SIOSocket的Swift闭包中使用self

来自分类Dev

在AngularJS中使用带有许诺的闭包

来自分类Dev

在子函数中使用带有闭包的 concat 方法

来自分类Dev

具有显式参数的闭包内部不能使用匿名闭包

来自分类Dev

如何创建一个带有输入的闭包的struct参数,在SwiftUI中返回“ some View”而不是“ AnyView”?

来自分类Dev

如何使用带有预定义任务的gulp 4将CSS注入browserSync中?

来自分类Dev

PHP“使用”其他参数进行闭包?

来自分类Dev

PHP:在类方法中使用全局定义的闭包

来自分类Dev

如何将Rust与wasm-bindgen一起使用,以创建一个带有状态的另一个闭包的闭包?

来自分类Dev

Swift:如何跳过未使用的闭包参数

来自分类Dev

如何在模板挂钩中使用闭包参数?

来自分类Dev

如何从闭包返回对闭包参数的引用?

来自分类Dev

使用闭包有困难

来自分类Dev

在Swift中将带有多个参数的函数作为闭包传递

来自分类Dev

Swift上函数中带有闭包和参数的函数的语法

Related 相关文章

  1. 1

    PHP闭包:使用带有函数定义的关键字:要使用的对象参数:未复制的参数

  2. 2

    如何在不使用闭包的情况下定义带有参数的回调,并在PHP中使用它?

  3. 3

    快速使用带有多个参数的闭包

  4. 4

    如何创建闭包调用带有较少参数的闭包迅速

  5. 5

    如何创建闭包调用带有较少参数的闭包迅速

  6. 6

    带有可选闭包的参数

  7. 7

    数组内部带有参数的闭包

  8. 8

    如何快速使用可变参数闭包?

  9. 9

    Swift:重用闭包定义(带有typealias)

  10. 10

    如何在PHP闭包中使用$ this?

  11. 11

    如何在PHP闭包中使用$ this?

  12. 12

    如何使用带有闭包的NSURLSessionTask优雅地处理方法中的错误?

  13. 13

    推导PHP闭包参数

  14. 14

    当使用带有Rc的闭包时,无法借用Fn闭包中捕获的外部变量

  15. 15

    在带有SIOSocket的Swift闭包中使用self

  16. 16

    在AngularJS中使用带有许诺的闭包

  17. 17

    在子函数中使用带有闭包的 concat 方法

  18. 18

    具有显式参数的闭包内部不能使用匿名闭包

  19. 19

    如何创建一个带有输入的闭包的struct参数,在SwiftUI中返回“ some View”而不是“ AnyView”?

  20. 20

    如何使用带有预定义任务的gulp 4将CSS注入browserSync中?

  21. 21

    PHP“使用”其他参数进行闭包?

  22. 22

    PHP:在类方法中使用全局定义的闭包

  23. 23

    如何将Rust与wasm-bindgen一起使用,以创建一个带有状态的另一个闭包的闭包?

  24. 24

    Swift:如何跳过未使用的闭包参数

  25. 25

    如何在模板挂钩中使用闭包参数?

  26. 26

    如何从闭包返回对闭包参数的引用?

  27. 27

    使用闭包有困难

  28. 28

    在Swift中将带有多个参数的函数作为闭包传递

  29. 29

    Swift上函数中带有闭包和参数的函数的语法

热门标签

归档