#### 1. 可变函数 --- 在PHP中如果将`函数名称`赋予字符串类型的变量, 但是在使用该变量时, 如果带有小括号, 那么PHP引擎将解析函数 PHP官方手册可变函数概念 : [https://www.php.net/manual/zh/functions.variable-functions.php](https://www.php.net/manual/zh/functions.variable-functions.php) 特别注意 : 可变函数不能用于例如 `echo()、print()、unset()、isset、empty()、include()、require()` 以及类似的语言结构。这些语言结构想要用作可变函数则需要使用自己的包装函数(自定义函数)实现。 #### 2. 使用示例 --- **正确使用** ```php $debug = 'var_dump'; $debug(true); //等价于var_dump(true); ``` **错误示范: echo 是一个语言结构, 并不是函数** ```php $bug = 'echo'; $bug(456);//Call to undefined function echo() ``` **包装 `echo` 的可变函数** ```php $bug = 'echoit'; $bug(456); /** * 使用echo的包装函数 */ function echoit($data) { echo $data; } ``` #### 3. 函数补充 --- 返回所有已定义函数的二维数组 ```php get_defined_functions(); ``` `user` 自定义函数 `internal` 系统函数 ``` ^ array:2 [▼ "internal" => array:1291 [▶] "user" => array:59 [▶] ] ```