1. 可變函數(shù)
在PHP中如果將函數(shù)名稱
賦予字符串類型的變量, 但是在使用該變量時(shí), 如果帶有小括號(hào), 那么PHP引擎將解析函數(shù)
PHP官方手冊(cè)可變函數(shù)概念 : 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ù))實(shí)現(xiàn)。
2. 使用示例
正確使用
$debug = 'var_dump';
$debug(true); //等價(jià)于var_dump(true);
錯(cuò)誤示范: echo 是一個(gè)語言結(jié)構(gòu), 并不是函數(shù)
$bug = 'echo';
$bug(456);//Call to undefined function echo()
包裝 echo
的可變函數(shù)
$bug = 'echoit';
$bug(456);
/**
* 使用echo的包裝函數(shù)
*/
function echoit($data)
{
echo $data;
}
3. 函數(shù)補(bǔ)充
返回所有已定義函數(shù)的二維數(shù)組
get_defined_functions();
user
自定義函數(shù)
internal
系統(tǒng)函數(shù)
^ array:2 [▼
"internal" => array:1291 [?]
"user" => array:59 [?]
]