[請益] 函數當參數?

看板PHP作者 (活力花俏草兒仔政﹞O花俏)時間15年前 (2010/06/07 02:03), 編輯推噓2(205)
留言7則, 3人參與, 最新討論串1/2 (看更多)
事情是如此的… 查過資料之後…在php下是可以把函數當作參數去傳遞… 他的方法大概就是先定義 function f(){ ... } 然後其他function test($func){ ... } 想把f當參數時,只要call test("f"); 降子test()就會視"f"為function f了~ 那…php有沒有辦法在不預先定義函數的狀況下,傳遞函數變數呢? 大概就和javascript可以直接call test(function(){ ... }); 一樣 我用同樣的思維在php試著降子作… 但好像會出錯0rz... 不想先定義的原因是,我擔心會不小心造成function redefine 如果抽出來當global function又覺得每個page都要讀所有 global function 有點傷… 所以求助於大家… 先感謝高手回答了m(_ _)m -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.87.174

06/07 02:15, , 1F
creat_function(), call_user_func() 或許可以做到
06/07 02:15, 1F

06/07 02:17, , 2F
但js把function當作變數型態的一種, 跟php仍舊不同
06/07 02:17, 2F

06/07 12:30, , 3F
creat_function()可以產生暱名函式,不會發生 redefine
06/07 12:30, 3F

06/07 14:55, , 5F
不過... php 5.3 以上才支援喔...
06/07 14:55, 5F

06/08 03:07, , 6F
用 create_function 就可以產生暱名函式了 (php 4.0.1以上)
06/08 03:07, 6F

06/08 03:08, , 7F
kylekai 講的那個是新的語法
06/08 03:08, 7F
文章代碼(AID): #1C2-CBV_ (PHP)
討論串 (同標題文章)
文章代碼(AID): #1C2-CBV_ (PHP)