首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 動態呼叫函數:變數函數語法

     編輯:PHP 綜合知識

PHP 支援變數函數:將函數名稱字串存入變數,透過變數加括號 $func() 呼叫。適用於回呼、策略模式、動態分派。

基本語法

function addition($a, $b) {
    echo ($a + $b) . "\n";
}

$func = "addition";
$func(3, 6); // 等同 addition(3, 6) → 輸出 9

進階:陣列回呼語法

class Math {
    public static function add($a, $b) { return $a + $b; }
    public function mul($a, $b) { return $a * $b; }
}

$staticCall = ['Math', 'add'];
$objCall = [new Math(), 'mul'];

echo $staticCall(2, 3) . "\n"; // 5
echo $objCall(2, 3) . "\n";    // 6

內建函數配合

$funcs = ['strlen', 'strtoupper', 'md5'];
$str = "hello";
foreach ($funcs as $f) {
    echo "$f: " . $f($str) . "\n";
}

注意事項

  • 函數名不分大小寫
  • 變數函數不能用於語言結構:echo()、print()、unset()、isset()、empty()、include()、require()
  • PHP 8.1+ 可用 call_user_func()、call_user_func_array() 統一呼叫

安全提醒

  • 不可直接用使用者輸入作為函數名,會導致任意程式碼執行
  • 需建立白名單驗證:if (in_array($input, $allowed)) $input();

變數函數是 PHP 動態特性核心,善用白名單確保安全。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved