PHP 匿名函數實現Python 一樣的功能。
有人問Python函數可以返回函數,PHP如何實現一樣的功能
python 中函數是第一類對象,函數名字是函數對象的引用,函數名可以賦值給變數,可以作為參數傳遞給函數,可以作為函數的返回值從函數中返回。
#! /usr/bin/pythonn #coding:utf-8n """n 參加黃哥python遠程視頻培訓,幫你完成從不會寫代碼到會寫代碼解決問題的過渡。n python遠程視頻培訓n https://github.com/pythonpeixun/article/blob/master/index.mdn python北京周末培訓班n https://github.com/pythonpeixun/article/blob/master/beijing_weekend.mdn 諮詢:qq:1465376564 企業內訓,個人培訓,請諮詢黃哥電話:18610508486n """nnn def f1(f2):n def f3():n return f2n return f3nnn def f2():n print("I come from f2")nn foo = f1(f2) # 返回值函數n print(foo()) # foo()的值還是函數n #<function f2 at 0x10c0ab140>n foo()() # 帶括弧調用n #I come from f2n
有人問php如何實現上面的功能呢?
php匿名函數(Anonymous functions),也叫閉包函數(closures),允許 臨時創建一個沒有指定名稱的函數。最經常用作回調函數(callback)參數的值。
<?phpnnn $f2 = function(){n return "I come from f2()";n };nn function f1($func) {n $f3 = function() use($func){n return $func();n };n return $f3;n }nn print f1($f2)();n print "n";n
推薦閱讀:
※【譯文】2016年度Analytics Vidhya上最火爆的36篇文章和資源
※Flowpython, 讓Python變得好一點
※為什麼在Python定義函數中想使用return語句返回一個list卻沒有任何返回值?
TAG:Python |