Ȥͼ£ºÌý˵ÄêÖÕ½±ÊÇÕâ¸öÊýºó£php ±Õ°ü£¨Closure£©³õ̽

Ò»µãºÅÆôº½Ö®ÐÇ3Сʱǰ

Ìý˵ÄêÖÕ½±ÊÇËĸöԵŤ×ʺó

¡ý¡ý¡ý


Ȥͼ£ºÌý˵ÄêÖÕ½±ÊÇÕâ¸öÊýºó£»PHP ±Õ°ü£¨Closure£©³õ̽
PHP ±Õ°ü£¨Closure£©³õ̽ ÄäÃûº¯Êý

Ìáµ½±Õ°ü¾Í²»µÃ²»ÏëÆðÄäÃûº¯Êý£¬Ò²½Ð±Õ°üº¯Êý£¨closures£©£¬Ã²ËÆPHP±Õ°üʵÏÖÖ÷Òª¾ÍÊÇ¿¿Ëü¡£ÉùÃ÷Ò»¸öÄäÃûº¯ÊýÊÇÕâÑù£º

$func = function {

}; //´ø½áÊø·û

¿ÉÒÔ¿´µ½£¬ÄäÃûº¯ÊýÒòΪûÓÐÃû×Ö£¬Èç¹ûҪʹÓÃËü£¬ÐèÒª½«Æä·µ»Ø¸øÒ»¸ö±äÁ¿¡£ÄäÃûº¯ÊýÒ²ÏñÆÕͨº¯ÊýÒ»Ñù¿ÉÒÔÉùÃ÷²ÎÊý£¬µ÷Ó÷½·¨Ò²Ïàͬ£º

$func = function( $param ) {

echo $param;

};

$func( 'some string' );

//Êä³ö£º

//some string

˳±ãÌáһϣ¬PHPÔÚÒýÈë±Õ°ü֮ǰ£¬Ò²ÓÐÒ»¸ö¿ÉÒÔ´´½¨ÄäÃûº¯ÊýµÄº¯Êý£ºcreate function£¬µ«ÊÇ´úÂëÂß¼­Ö»ÄÜд³É×Ö·û´®£¬ÕâÑù¿´ÆðÀ´ºÜ»Þɬ²¢ÇÒ²»ºÃά»¤£¬ËùÒÔºÜÉÙÓÐÈËÓá£

ʵÏÖ±Õ°ü

½«ÄäÃûº¯ÊýÔÚÆÕͨº¯ÊýÖе±×ö²ÎÊý´«È룬Ҳ¿ÉÒÔ±»·µ»Ø¡£Õâ¾ÍʵÏÖÁËÒ»¸ö¼òµ¥µÄ±Õ°ü¡£

ϱßÓÐÈý¸öÀý×Ó

//ÀýÒ»

//ÔÚº¯ÊýÀﶨÒåÒ»¸öÄäÃûº¯Êý£¬²¢ÇÒµ÷ÓÃËü

function printStr {

$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 ) {

echo $rmb;

echo $dollar;

};

$func;

}

getMoney;

//Êä³ö£º

//1

//±¨´í£¬ÕÒ²»µ½dorllar±äÁ¿

¿ÉÒÔ¿´µ½£¬dollarûÓÐÔÚuse¹Ø¼ü×ÖÖÐÉùÃ÷£¬ÔÚÕâ¸öÄäÃûº¯ÊýÀïÒ²¾Í²»ÄÜ»ñÈ¡µ½Ëü£¬ËùÒÔ¿ª·¢ÖÐҪעÒâÕâ¸öÎÊÌâ¡£

ÓÐÈË¿ÉÄÜ»áÏëµ½£¬ÊÇ·ñ¿ÉÒÔÔÚÄäÃûº¯ÊýÖиıäÉÏÏÂÎĵıäÁ¿£¬µ«ÎÒ·¢ÏÖÊDz»¿ÉÒԵģº

function getMoney {

$rmb = 1;

$func = function use ( $rmb ) {

echo $rmb;

//°Ñ$rmbµÄÖµ¼Ó1

$rmb++;

};

$func;

echo $rmb;

}

getMoney;

//Êä³ö£º

//1

//1

°¡£¬Ô­À´useËùÒýÓõÄÒ²Ö»²»¹ýÊDZäÁ¿µÄÒ»¸ö¸±±¾¶øÒÑ¡£µ«ÊÇÎÒÏëÒªÍêÈ«ÒýÓñäÁ¿£¬¶ø²»ÊǸ´ÖÆ¡£

Òª´ïµ½ÕâÖÖЧ¹û£¬ÆäʵÔÚ±äÁ¿Ç°¼ÓÒ»¸ö & ·ûºÅ¾Í¿ÉÒÔÁË£º

function getMoney {

$rmb = 1;

$func = function use ( &$rmb ) {

echo $rmb;

//°Ñ$rmbµÄÖµ¼Ó1

$rmb++;

};

$func;

echo $rmb;

}

getMoney;

//Êä³ö£º

//1

//2

ºÃ£¬ÕâÑùÄäÃûº¯Êý¾Í¿ÉÒÔÒýÓÃÉÏÏÂÎĵıäÁ¿ÁË¡£Èç¹û½«ÄäÃûº¯Êý·µ»Ø¸øÍâ½ç£¬ÄäÃûº¯Êý»á±£´æuseËùÒýÓõıäÁ¿£¬¶øÍâ½çÔò²»Äܵõ½ÕâЩ±äÁ¿£¬ÕâÑùÐγɡ®±Õ°ü¡¯Õâ¸ö¸ÅÄî¿ÉÄÜ»á¸üÇåÎúһЩ¡£¸ù¾ÝÃèÊö¸Ä±äÒ»ÏÂÉÏÃæµÄÀý×Ó£º

function getMoneyFunc {

$rmb = 1;

$func = function use ( &$rmb ) {

echo $rmb;

//°Ñ$rmbµÄÖµ¼Ó1

$rmb++;

};

return $func;

}

$getMoney = getMoneyFunc;

$getMoney;

$getMoney;

$getMoney;

//Êä³ö£º

//1

//2

//3

×ܽá

PHP±Õ°üµÄÌØÐÔ²¢Ã»ÓÐÌ«´ó¾ªÏ²£¬ÆäʵÓÃCLASS¾Í¿ÉÒÔʵÏÖÀàËÆÉõÖÁÇ¿´óµÃ¶àµÄ¹¦ÄÜ£¬¸ü²»ÄܺÍjsµÄ±Õ°üÏàÌá²¢ÂÛ£¬Ö»ÄÜÆÚ´ýPHPÒÔºó¶Ô±Õ°üÖ§³ÖµÄ¸Ä½ø¡£²»¹ýÄäÃûº¯Êý»¹ÊÇͦÓÐÓõ쬱ÈÈçÔÚʹÓÃpreg_replace_callbackµÈÖ®ÀàµÄº¯Êý¿ÉÒÔ²»ÓÃÔÚÍⲿÉùÃ÷»Øµ÷º¯ÊýÁË¡£

±¾ÎÄ¿ª·¢£¨php£©Ïà¹ØÊõÓï:php´úÂëÉ󼯹¤¾ß php¿ª·¢¹¤³Ìʦ ÒÆ¶¯¿ª·¢Õß´ó»á ÒÆ¶¯»¥ÁªÍø¿ª·¢ web¿ª·¢¹¤³Ìʦ Èí¼þ¿ª·¢Á÷³Ì Èí¼þ¿ª·¢¹¤³Ìʦ

Ö÷Ìâ: PHP¡¢ÄêÖÕ½±¡¢±äÁ¿¡¢Æäʵ¡¢¹¤×Ê¡¢
tags: function,func,±Õ°ü,º¯Êý,ÄäÃû,echo,amp,getMoney,str,apos,use,PHP,±äÁ¿,string
·ÖÒ³£º12
×ªÔØÇë×¢Ã÷
±¾ÎıêÌ⣺Ȥͼ£ºÌý˵ÄêÖÕ½±ÊÇÕâ¸öÊýºó£»PHP ±Õ°ü£¨Closure£©³õ̽
±¾Õ¾Á´½Ó£ºhttp://www.codesec.net/view/521566.html
·ÖÏíÇëµã»÷£º


1.·²CodeSecTeam×ªÔØµÄÎÄÕÂ,¾ù³ö×ÔÆäËüýÌå»òÆäËû¹ÙÍø½éÉÜ,Ä¿µÄÔÚÓÚ´«µÝ¸ü¶àµÄÐÅÏ¢,²¢²»´ú±í±¾Õ¾ÔÞͬÆä¹ÛµãºÍÆäÕæÊµÐÔ¸ºÔð£»
2.×ªÔØµÄÎÄÕ½ö´ú±íÔ­´´×÷Õß¹Ûµã,Óë±¾Õ¾Î޹ء£ÆäÔ­´´ÐÔÒÔ¼°ÎÄÖгÂÊöÎÄ×ÖºÍÄÚÈÝδ¾­±¾Õ¾Ö¤Êµ,±¾Õ¾¶Ô¸ÃÎÄÒÔ¼°ÆäÖÐÈ«²¿»òÕß²¿·ÖÄÚÈÝ¡¢ÎÄ×ÖµÄÕæÊµÐÔ¡¢ÍêÕûÐÔ¡¢¼°Ê±ÐÔ£¬²»×÷³öÈκα£Ö¤»ò³ÐÈô£»
3.Èç±¾Õ¾×ªÔØ¸åÉæ¼°°æÈ¨µÈÎÊÌâ,Çë×÷Õß¼°Ê±ÁªÏµ±¾Õ¾,ÎÒÃǻἰʱ´¦Àí¡£
µÇ¼ºó¿ÉÓµÓÐÊÕ²ØÎÄÕ¡¢¹Ø×¢×÷ÕßµÈȨÏÞ...
¼¼Êõ´óÀà ¼¼Êõ´óÀà | ¿ª·¢£¨php£© | ÆÀÂÛ(0) | ÔĶÁ(132)