数码资讯
PHP闭包(闭包)匿名函数的初步研究
提到闭包,您必须考虑匿名函数,也称为闭包,它看起来像PHP闭包,主要是由它来声明的: 函数(){ };磁带结束 如您所见,匿名函数没有名称,如果您想使用它,您需要将其返回到一个变量: $函数=函数(美元的){ echo参数; }; $(字符串)功能; 输出: 某些字符串 顺便说一下,PHP还具有在引
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
提到闭包,您必须考虑匿名函数,也称为闭包,它看起来像PHP闭包,主要是由它来声明的:
函数(){
};磁带结束
如您所见,匿名函数没有名称,如果您想使用它,您需要将其返回到一个变量:
$函数=函数(美元的){
echo参数;
};
$(字符串)功能;
输出:
某些字符串
顺便说一下,PHP还具有在引入闭包之前创建匿名函数的功能。创建函数,但是代码逻辑只能写成字符串,所以它看起来很模糊,维护也很差,所以很少有人使用它。
1。实现闭合
匿名函数在普通函数中作为参数传递,也可以返回。
下面有三个例子
在函数中定义一个匿名函数,并调用它
功能printstr(){
函数($){
回声$;
};
$(字符串)功能;
}
PrintStr ();
两个案例
函数中返回匿名函数,并调用它。
功能getprintstrfunc(){
函数($){
回声$;
};
返回$函数;
}
printstrfunc美元= getprintstrfunc();
printstrfunc美元(字符串);
三例
匿名函数作为参数传递,并调用它
Function callFunc ($func) {
$(字符串)功能;
}
printstrfunc美元=功能($str){
回声$;
};
CallFunc(printstrfunc美元);
也可以直接向匿名函数传输。如果你知道JS,这种写作方式可能很熟悉。
CallFunc(功能($str){)
回声$;
});
2。连接闭包和外部变量的关键字:使用
关闭可以节省一些在默认情况下,代码block.php上下文的变量和值,匿名函数不能调用的代码块的上下文变量,但它需要通过使用关键字使用。
另一个例子:
函数可以(){
美元= 1;
美元= 6;
函数()使用($人民币){
回音人民币;
回音美元;
};
函数();
}
GetMoney();
输出:
1
/ /错误,找不到dorllar变量
正如您所看到的,美元在使用关键字中没有声明,并且不能在这个匿名函数中得到它,所以我们应该注意这个问题在开发中。
人们可能会考虑在匿名函数中更改上下文变量的可能性,但我发现这是不可能的。
函数可以(){
美元= 1;
函数()使用($人民币){
回音人民币;
$加1的值
元+ +;
};
函数();
回音人民币;
}
GetMoney();
输出:
1
1
事实上,使用引号只是变量的拷贝,但是我想完整地引用变量,而不是复制品。
为了实现这个效果,实际上可以在变量之前添加一个符号。
函数可以(){
美元= 1;
函数()使用($人民币){
回音人民币;
$加1的值
元+ +;
};
函数();
回音人民币;
}
GetMoney();
输出:
1
2
因此,匿名函数可以引用上下文的变量,如果匿名函数返回到外部世界,匿名函数将节省使用引用的变量,而外部世界不能获得这些变量,所以闭包的概念可以更明确。
根据描述更改上述示例:
功能getmoneyfunc(){
美元= 1;
函数()使用($人民币){
回音人民币;
$加1的值
元+ +;
};
返回$函数;
}
可以getmoneyfunc美元=();
$可以();
$可以();
$可以();
输出:
1
2
3
总结
PHP闭包的特性并不令人惊讶。事实上,类可以实现类似的甚至更强大的功能,而无法与JS的关闭相比较。它只能期待改进后关闭支持PHP。然而,匿名函数是有用的,如preg_replace_callback等功能,如使用一个函数,不能在回调函数声明。
合作伙伴对PHP的匿名函数,即闭包函数有了新的理解吗。我希望这篇文章能给你一些提示,希望你能喜欢。
函数(){
};磁带结束
如您所见,匿名函数没有名称,如果您想使用它,您需要将其返回到一个变量:
$函数=函数(美元的){
echo参数;
};
$(字符串)功能;
输出:
某些字符串
顺便说一下,PHP还具有在引入闭包之前创建匿名函数的功能。创建函数,但是代码逻辑只能写成字符串,所以它看起来很模糊,维护也很差,所以很少有人使用它。
1。实现闭合
匿名函数在普通函数中作为参数传递,也可以返回。
下面有三个例子
在函数中定义一个匿名函数,并调用它
功能printstr(){
函数($){
回声$;
};
$(字符串)功能;
}
PrintStr ();
两个案例
函数中返回匿名函数,并调用它。
功能getprintstrfunc(){
函数($){
回声$;
};
返回$函数;
}
printstrfunc美元= getprintstrfunc();
printstrfunc美元(字符串);
三例
匿名函数作为参数传递,并调用它
Function callFunc ($func) {
$(字符串)功能;
}
printstrfunc美元=功能($str){
回声$;
};
CallFunc(printstrfunc美元);
也可以直接向匿名函数传输。如果你知道JS,这种写作方式可能很熟悉。
CallFunc(功能($str){)
回声$;
});
2。连接闭包和外部变量的关键字:使用
关闭可以节省一些在默认情况下,代码block.php上下文的变量和值,匿名函数不能调用的代码块的上下文变量,但它需要通过使用关键字使用。
另一个例子:
函数可以(){
美元= 1;
美元= 6;
函数()使用($人民币){
回音人民币;
回音美元;
};
函数();
}
GetMoney();
输出:
1
/ /错误,找不到dorllar变量
正如您所看到的,美元在使用关键字中没有声明,并且不能在这个匿名函数中得到它,所以我们应该注意这个问题在开发中。
人们可能会考虑在匿名函数中更改上下文变量的可能性,但我发现这是不可能的。
函数可以(){
美元= 1;
函数()使用($人民币){
回音人民币;
$加1的值
元+ +;
};
函数();
回音人民币;
}
GetMoney();
输出:
1
1
事实上,使用引号只是变量的拷贝,但是我想完整地引用变量,而不是复制品。
为了实现这个效果,实际上可以在变量之前添加一个符号。
函数可以(){
美元= 1;
函数()使用($人民币){
回音人民币;
$加1的值
元+ +;
};
函数();
回音人民币;
}
GetMoney();
输出:
1
2
因此,匿名函数可以引用上下文的变量,如果匿名函数返回到外部世界,匿名函数将节省使用引用的变量,而外部世界不能获得这些变量,所以闭包的概念可以更明确。
根据描述更改上述示例:
功能getmoneyfunc(){
美元= 1;
函数()使用($人民币){
回音人民币;
$加1的值
元+ +;
};
返回$函数;
}
可以getmoneyfunc美元=();
$可以();
$可以();
$可以();
输出:
1
2
3
总结
PHP闭包的特性并不令人惊讶。事实上,类可以实现类似的甚至更强大的功能,而无法与JS的关闭相比较。它只能期待改进后关闭支持PHP。然而,匿名函数是有用的,如preg_replace_callback等功能,如使用一个函数,不能在回调函数声明。
合作伙伴对PHP的匿名函数,即闭包函数有了新的理解吗。我希望这篇文章能给你一些提示,希望你能喜欢。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。