<?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();