無效代碼:使用字符串在PHP中聲明函數?
$functionName = 'sayThis';
function $functionName($string) {
echo $string;
}
我可以做這樣的事?
無效代碼:使用字符串在PHP中聲明函數?
$functionName = 'sayThis';
function $functionName($string) {
echo $string;
}
我可以做這樣的事?
我不建議你這樣做,但如果你堅持,使用eval是一個選項。
要非常小心壽。並遠離任何用戶輸入!
<?php
$name = 'sayThis';
$code = <<<PHP
function $name(\$string) {
echo \$string;
}
PHP;
eval($code);
$name('This is NOT a good idea!');
?>
+1這看起來像回答了OP的問題。這是要求你小心的事情之一。 – 2009-11-29 02:18:39
你真的不想這樣做。可怕的想法。 – 2009-11-29 00:09:06
有助於理解你爲什麼要這樣做。你想達到什麼目的? – 2009-11-29 00:20:58
我在許多文件中都有相同的函數(processFormSubmission())。這個函數目前有一個名字,但是根據它所在的文件做了幾個不同的事情。有時候同一個函數名可以包含在一次執行中。如果是這種情況,我會得到一個錯誤,說該函數已經被聲明。我想動態地命名該函數,所以我沒有名稱衝突。該函數的動態分配名稱將存儲在一個類中。 – 2009-11-29 08:03:14