在PHP中如果将函数名称
赋予字符串类型的变量, 但是在使用该变量时, 如果带有小括号, 那么PHP引擎将解析函数
PHP官方手册可变函数概念 : https://www.php.net/manual/zh/functions.variable-functions.php
特别注意 : 可变函数不能用于例如 echo()、print()、unset()、isset、empty()、include()、require()
以及类似的语言结构。这些语言结构想要用作可变函数则需要使用自己的包装函数(自定义函数)实现。
正确使用
$debug = 'var_dump';
$debug(true); //等价于var_dump(true);
错误示范: echo 是一个语言结构, 并不是函数
$bug = 'echo';
$bug(456);//Call to undefined function echo()
包装 echo
的可变函数
$bug = 'echoit';
$bug(456);
/**
* 使用echo的包装函数
*/
function echoit($data)
{
echo $data;
}
返回所有已定义函数的二维数组
get_defined_functions();
user
自定义函数
internal
系统函数
^ array:2 [▼
"internal" => array:1291 [?]
"user" => array:59 [?]
]
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有