php函数总结(闭包函数,匿名函数)

Posted fps2tao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php函数总结(闭包函数,匿名函数)相关的知识,希望对你有一定的参考价值。

php函数总结

1.普通函数

2.变量函数

function myfun($a)
{
    echo $a;
}
$b = "myfun";
$b("test");

 

3.匿名函数(可以实现闭包)

  匿名函数(Anonymous functions),也叫闭包函数(Closures),允许临时创建一个没有指定名称的函数,经常用作回调函数(callback)的参数,当然也有其他应用情况

$func = function() {
};//要带分号
$func() //调用
var_dump($func);
//返回对象类型 object(Closure)#1 (0) { }

 

4.闭包函数:将匿名函数在普通函数中当做参数出入,也可以被返回,就实现了一个简单的闭包.

  通俗的说,子函数可以使用父函数中的局部变量,这种行为就叫做闭包.

  闭包的特点:

    1.作为一个函数变量的一个引用,当函数返回时,其处于激活状态.

    2.一个闭包就是当一个函数返回时,一个没有释放资源的栈区

--其实上面两点可以合成一点,就是闭包函数返回时,该函数内部变量处于激活状态,函数所在栈区依然保留.

function myfunc()
{
    $a=10;
    $b=11;
    $one = function($str)use(&$a,$b){//use引用外层变量 不加&传副本不影响父函数值
        echo $a=$a+2;
        echo ‘<br/>‘;
        echo $b=$b+2;
        echo ‘<br/>‘;
        echo $str;
    };
    echo $a;
    echo ‘---<br/>‘;
    echo $b;
    echo ‘---<br/>‘;
    return $one;
}
$a = myfunc();

$a(‘你好‘);

 

技术分享图片

父函数中把匿名函数作为返回值返回,闭包的一种..

 

 5.内部函数

 

 

扩展知识php:USE关键词的用法

1.命名空间

2.闭包函数上下文

3.Trait代码复用时 引用....  (参考http://php.net/manual/zh/language.oop5.traits.php)

 

上一篇文章:http://www.cnblogs.com/fps2tao/p/8727248.html 

 

以上是关于php函数总结(闭包函数,匿名函数)的主要内容,如果未能解决你的问题,请参考以下文章

从匿名函数(闭包特性)到 PHP 设计模式之容器模式

php匿名函数和闭包函数及use关键字传参及Closure匿名函数类

PHP匿名函数和闭包

PHP中的闭包和匿名函数

浅析PHP中的闭包和匿名函数

PHP函数-匿名函数(闭包函数)