background image

$func

 = 

function

$str

 ) {

echo

 

$str

;

};

$func

( 'some string' );

}
printStr();

//例二
//在函数中把匿名函数返回,并且调用它
function

 getPrintStrFunc() {

$func

 = 

function

$str

 ) {

echo

 

$str

;

};

return

 

$func

;

}

$printStrFunc

 = getPrintStrFunc();

$printStrFunc

( 'some string' );

 

//例三
//把匿名函数当做参数传递,并且调用它
function

 callFunc( 

$func

 ) {

$func

( 'some string' );

}

$printStrFunc

 = 

function

$str

 ) {

echo

 

$str

;

};
callFunc( 

$printStrFunc

 );

//也可以直接将匿名函数进行传递。如果你了解 js,这种写法可能会很熟悉

callFunc( 

function

$str

 ) {

echo

 

$str

;

} );
 
连接闭包和外界变量的关键字:USE
闭包可以保存所在代码块上下文的一些变量和值。PHP 在默认情况下,匿名函数不能调用
所在代码块的上下文变量,而需要通过使用

use

关键字。

换一个例子看看:
代码如下:
 

function

 getMoney() {

$rmb

 = 1;

$dollar

 = 6;

$func

 = 

function

() 

use

 ( 

$rmb

 ) {