匿名函数 顾名思义就是没有名字的函数。 php中也叫做闭包函数
函数没有名字怎么定义,怎么用呢?
$hi(); // 这样就运行了 $new_hi = $hi; $new_hi(); // hi
可以看到使用方法也是挺简单的,当做一个变量,然后后面加上 () 就可以运行了。
比如一个问题: 如何把 this_is_test_var -> thisIsTest_Var
$ans = preg_replace_callback("#_([a-z])#", function ($match) { return strtoupper( $match[1]); }, "this_is_test_var"); var_dump($ans); // string 'thisIsTestVar' (length=13)
这里 使用一个匿名函数,作为 preg_replace_callback 的参数(第二个参数)
这个准确的说应该是 use 使父作用域的变量可以在匿名函数内使用
$name = "zhangs"; $f = function () use ($name) { echo $name; }; $f();这里如果写 $f = function($name) { echo $name }; 那么两个 $name ,就会出现两次问题提示。
$var = 'A'; $f = function () use ($var) { echo $var; }; $var = 'B'; $f();
这里的结果是 A , 不是B
理由: $f 是在程序的运行过程中创建的, 当创建的时候 $var = 'A'; 所以输出是 'A'.
如何输出 B
方法也很简单,使用引用就可以。 $var -> &$var