PHP可变函数和匿名函数

0 阅读1分钟

可变函数

当前有一个变量所保存的值,刚好是一个函数的名字,那么就可以使用变量+()来充当函数名使用。

<?php
$str='display';
function display(){
    echo 'hello,world';
}
$str();//可变函数
?>
1774417782575.png

匿名函数

匿名函数:没有名字的函数,它不能访问外部变量

基本语法:

$display=function(){
    echo 'hello';
}
$display()//调用函数--可变函数

变量保存匿名函数,本质得到的是一个对象(closure-闭包)

闭包

闭包是匿名函数里的一种,所有闭包都是匿名函数,但是不是所有匿名函数都是闭包.

闭包带外部记忆--可以访问外部变量

// 闭包函数
    function display(){
        // 局部变量
        $name='小白';
        // 匿名函数--无法直接使用外部变量
        $innerfunction=function() use($name){//use 将外部变量保留给内部使用形成闭包函数
            echo $name;
        };
        $innerfunction();
    };
    display()