PHP匿名函数和use子句用法实例

本文实例讲述了PHP匿名函数和use子句用法。分享给大家供大家参考,具体如下:

下面方法输出的是hello world

$param1和$param2是闭包变量:

  1. function test()
  2. {
  3. $param2 = 'every';
  4. // 返回一个匿名函数
  5. return function ($param1) use ($param2) {
  6. // use子句 让匿名函数使用其作用域的变量
  7. $param2 .= 'one';
  8. print $param1 . ' ' . $param2;
  9. //phpfensi.com
  10. };
  11. }
  12. $anonymous_func = test();
  13. $anonymous_func('hello');

下面的方式 输出hello everyone:

  1. function test()
  2. {
  3. $param2 = 'everyone';
  4. $func = function ($param1) use ($param2) {
  5. // use子句 让匿名函数使用其父作用域的变量
  6. print $param1 . ' ' . $param2;
  7. };
  8. $param2 = 'everybody';
  9. return $func;
  10. }
  11. $anonymous_func = test();
  12. $anonymous_func('hello');

下面的方式 输出hello everybody

$param2中多了一个引用:

  1. function test()
  2. {
  3. $param2 = 'everyone';
  4. $func = function ($param1) use (&$param2) {
  5. // use子句 让匿名函数使用其父作用域的变量
  6. print $param1 . ' ' . $param2;
  7. };
  8. $param2 = 'everybody';
  9. return $func;
  10. }
  11. $anonymous_func = test();
  12. $anonymous_func('hello');