簡體   English   中英

使用變量來定義PHP函數

[英]Use a variable to define a PHP function

我想使用變量動態命名一些函數,如下所示:

$thing = 'some_function';

function $thing() {
    echo 'hi!';
}

我知道我可以使用這樣的變量調用函數:

$something = 'function_exists';

if( $something('print_r') ) {
    echo 'Yep';
}

但最好的例子對我不起作用。

有任何想法嗎?

我正在使用具有模塊的系統。 每個模塊都是一個php腳本,可以添加或從特定文件夾中刪除。

每個模塊都需要一個新函數來初始化它。 我是文件名的全球化,然后我想循環並創建一系列函數,每個模塊一個。

我正在使用現有系統,無法重寫模塊處理。

另一種方法是將所有init函數寫出來並對其進行硬編碼,但隨着列表的增長,代碼也會增長 - 如果模塊被刪除,則會拋出錯誤。

你能做的是

$thing = 'some_function';
$$thing = function() {
   echo 'hi';
};
$some_function();

在php <5.3中,你將不得不使用create_function而不是匿名函數

// Use this in < 5.3
$thing = 'some_function';
$$thing = create_function('',
   'echo "hi";'
);
$some_function();

話雖這么說,用動態名稱定義函數是個壞主意。 相反,創建一個您調用的函數數組,或使用多態。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM