<?php
//$fun = function($params){
// echo $params;
//};
//
//$fun('aa');
//例一
//在普通函数中定义一个匿名函数
//function printStr(){
// $fun = function($something){
// echo $something;
// };
// $fun('something');
//
//}
//printStr();
//例子二
//在普通函数中定义一个匿名函数,并将其返回
//function printStr(){
// $fun = function($something){
// echo $something;
// };
// return $fun;
//}
//$printString = printStr();
//$printString('aaaaddd');
//例子三
//把匿名函数当做参数传递
//function printStr($fun,$a){
// $fun($a);
//}
//
//$fun = function($str){
// echo $str;
//};
//printStr($fun,'ddsdddd');
//闭包需要使用use才可以引用上下文的变量
//function getMoney(){
// $a = 1;
// $b = 2;
// $fun = function() use ($a,$b) {
// echo $a;
// echo $b;
// };
// $fun();
//}
//
//getMoney();
//闭包不能改变上下文的变量,除非使用&符号,下例输出11
//function getMoney(){
// $a = 1;
// $fun = function() use ($a){
// echo $a;
// $a++;
// };
// $fun();
// echo $a;
//}
//getMoney();
//带&符号的可以改变,下例输出12
//function getMoney(){
// $a = 1;
// $fun = function() use (&$a){
// echo $a;
// $a++;
// };
// $fun();
// echo $a;
//}
//getMoney();
//function getMoney(){
// $a = 1;
// $fun = function() use (&$a) {
// echo $a;
// $a++;
// };
// return $fun;
//}
//
//$getMoney = getMoney();
//$getMoney();
//$getMoney();
//$getMoney();
//函数嵌套
function funca(){
function funcb(){
echo 'aa';
}
funcb();
}
funca();
funcb();