#### 1. 可變函數(shù) --- 在PHP中如果將`函數(shù)名稱`賦予字符串類型的變量, 但是在使用該變量時, 如果帶有小括號, 那么PHP引擎將解析函數(shù) PHP官方手冊可變函數(shù)概念 : [https://www.php.net/manual/zh/functions.variable-functions.php](https://www.php.net/manual/zh/functions.variable-functions.php) 特別注意 : 可變函數(shù)不能用于例如 `echo()、print()、unset()、isset、empty()、include()、require()` 以及類似的語言結(jié)構(gòu)。這些語言結(jié)構(gòu)想要用作可變函數(shù)則需要使用自己的包裝函數(shù)(自定義函數(shù))實現(xiàn)。 #### 2. 使用示例 --- **正確使用** ```php $debug = 'var_dump'; $debug(true); //等價于var_dump(true); ``` **錯誤示范: echo 是一個語言結(jié)構(gòu), 并不是函數(shù)** ```php $bug = 'echo'; $bug(456);//Call to undefined function echo() ``` **包裝 `echo` 的可變函數(shù)** ```php $bug = 'echoit'; $bug(456); /** * 使用echo的包裝函數(shù) */ function echoit($data) { echo $data; } ``` #### 3. 函數(shù)補充 --- 返回所有已定義函數(shù)的二維數(shù)組 ```php get_defined_functions(); ``` `user` 自定義函數(shù) `internal` 系統(tǒng)函數(shù) ``` ^ array:2 [▼ "internal" => array:1291 [?] "user" => array:59 [?] ] ```