当前位置: 首页 > 后端技术 > PHP

PHP的闭包

时间:2023-03-29 21:31:28 PHP

frontier浠婂ぉ鎴戜滑鏉ヨ亰涓€鑱奝HP5.3寮曞叆鐨勯棴鍖呯壒鎬у畾涔夐棴鍖呮寚鐨勬槸涓€涓嚱鏁帮紝瀹冨湪鍒涘缓鏃跺皝瑁呬簡鍛ㄥ洿鐨勭姸鎬併€傚嵆浣块棴鍖呮墍鍦ㄧ殑鐜涓嶅瀛樺湪锛屽皝瑁呭湪闂寘涓殑鐘舵€佷粛鐒跺瓨鍦ㄣ€傛湁浜哄彲鑳戒細闂棴鍖呭拰鍖垮悕鍑芥暟鏈変粈涔堝尯鍒€傚叾瀹炰粠鐞嗚涓婅锛岄棴鍖呭拰鍖垮悕鍑芥暟鏄笉鍚岀殑姒傚康銆備絾鏄疨HP灏嗗叾瑙嗕负鐩稿悓鐨勬蹇点€傛墍浠ワ紝褰撴垜浠彁鍒伴棴鍖呮椂锛屾垜浠篃鎸囩殑鏄尶鍚嶅嚱鏁般€傞棴鍖呭拰鍖垮悕鍑芥暟瀹為檯涓婃槸浼鎴愬嚱鏁扮殑瀵硅薄銆傚鏋滄偍妫€鏌HP闂寘鎴栧尶鍚嶅嚱鏁帮紝鎮ㄤ細鍙戠幇瀹冧滑鏄疌losure绫荤殑瀹炰緥銆傚垱寤洪棴鍖呯湅渚嬪瓙//鍒涘缓闂寘$test=function($name){return"hello$name\n";};echo$test('hpinke');//杈撳嚭hellohpinke绠€鍗曟潵璇村氨鏄垱寤轰竴涓棴鍖呭璞″苟灏嗗叾鍒嗛厤缁?test鍙橀噺銆傞棴鍖呬笌鏅€氱殑PHP鍑芥暟闈炲父鐩镐技锛氬畠浠娇鐢ㄧ浉鍚岀殑璇硶銆佹帴鍙楀弬鏁板拰杩斿洖鍊笺€傛垜浠€氬父浣跨敤PHP闂寘浣滀负鍑芥暟鍜屾柟娉曠殑鍥炶皟銆傝澶歅HP鍑芥暟浣跨敤鍥炶皟鍑芥暟锛屼緥濡俛rray_map$resultArr=array_map(function($num){return$num*3;},[1,2,3,4]);print_r($resultArr);//input36912鍦ㄥ紩鍏ラ棴鍖呬箣鍓嶏紝鍒涘缓鍛藉悕鍑芥暟鐨勫敮涓€鏂规硶鏄寜鍚嶇О瀵煎叆璇ュ嚱鏁般€傞檮鍔犵姸鎬佸湪PHP涓紝蹇呴』閫氳繃鎵嬪姩璋冪敤闂寘瀵硅薄鐨刡indTo()鏂规硶鎴栦娇鐢╱se鍏抽敭瀛楀皢鐘舵€侀檮鍔犲埌PHP闂寘銆?.浣跨敤use鍏抽敭瀛梖unctiontestPerson($name){returnfunction($domain)use($name){echo"$domain---$name";};}$name=testPerson('hpinke');echo$name('helloworld');//杈撳嚭helloworld---hpinke鍑芥暟testPerson()鏈変竴涓悕涓?name鐨勫弬鏁帮紝杩欎釜鍑芥暟杩斿洖涓€涓棴鍖呭璞★紝鑰屼笖杩欎釜闂寘灏佽浜?name鍙傛暟锛屽嵆浣胯繑鍥炵殑闂寘瀵硅薄鍦╰estPerson()鍑芥暟鐨勮寖鍥翠箣澶栵紝瀹冧篃浼氳浣?name鍙傛暟鐨勫€硷紝鍥犱负$name鍙橀噺杩樺湪闂寘涓€備簩銆佷娇鐢╞indTo鍏抽敭瀛桺HP闂寘鏄璞°€備笌浠讳綍鍏朵粬PHP瀵硅薄涓€鏍凤紝姣忎釜闂寘瀹炰緥閮藉彲浠ヤ娇鐢?this鍏抽敭瀛楄闂棴鍖呯殑鍐呴儴鐘舵€併€傛垜浠彲浠ヤ娇鐢╞indTo鏂规硶灏咰losure瀵硅薄鐨勫唴閮ㄧ姸鎬佺粦瀹氬埌鍏朵粬瀵硅薄銆?/鍔ㄦ€佹坊鍔犳柟娉曞埌瀵硅薄绫籘est{private$num=1;}$f=function(){return$this->num+1;};$test1=$f->bindTo(newTest,'Test');echo$test1();//杈撳嚭2鎴戜滑璁块棶鐨?num鏄竴涓鏈夊彉閲忥紝鎵€浠ヤ綔鐢ㄥ煙鎸囧畾浜嗗璞℃垨绫诲悕銆傛劅璋㈤槄璇绘湰鏂囷紝濡傛湁涓嶅Ε涔嬪锛岃鎸囧嚭锛岃阿璋煓?/p>