可變函式名呼叫方式

2021-05-09 16:25:54 字數 534 閱讀 5961

在php中,可以用乙個變數來儲存函式名,然後通過這個變數來呼叫這個函式, 最近在做乙個專案,用到了這點,總結了下,目前來說主要發現了以下三種方式:

1.直接呼叫:

$a = "var_dump";

$a("laruence");

2.使用call_user_func,但這個只能呼叫使用者自定義的函式.

$a = "function_defined_by_user";

if(func_exists($a))

3.也就是借用php5新引入的一套reflection api中的reflectionfunction:

$func_name = "function_defined_by_user";

trycatch(reflectionfuncionexception $e)

$func->invoke($parameters);

這套新api非常有趣,有趣的我想好好研究研究,參考手冊中關於這套api的介紹:http://au2.php.net/oop5.reflection

由函式名稱呼叫函式

對dll進行過動態載入的朋友應該清楚getprocaddress這個api,其作用是通過乙個函式名稱從dll模組中獲得這個函式的位址,然後將其轉換成相應的函式指標供我們呼叫。這便是通過函式名稱來呼叫函式的乙個典型例子。下面我們就 一下這個函式,主要思路就是建立一張函式對映表。include usin...

fixture 呼叫函式名傳參

print 結束測試 測試類 pytest.mark.usefixtures init login class testopenapi pytest.mark.usefixtures init login def test freeze self,init login print init logi...

php呼叫可變函式,PHP呼叫參數量可變的函式

所以我遇到了一些問題。我知道乙個解決方案,但它看起來不太乾淨,我想知道是否有更好的解決方案。我正在編寫乙個mysqli包裝器,用於執行準備好的語句。因為它是乙個包裝器,可以重用 動態 返回的列數取決於查詢,並且不是靜態的。我已經找到了乙個解決這個問題的方法,似乎每個人都在使用 call user f...