首页 > 解决方案 > 如何不仅检查保留关键字,还检查任何内置函数或“特殊变量”?

问题描述

我终于能够检查 PHP 中的任何“保留关键字”,例如“if”、“for”和“else”。我在 Stack Exchange 上发现了一个有用的 hack,它通过将其烘焙成一个临时的 PHP 代码字符串,然后使用 token_get_all() 来检查它。

但是,我仍然不知道如何检查给定的字符串是否对应于内置函数,例如“mb_strpos”或“dl”。我还没有找到一种方法来检查给定变量名称是否对应于“特殊的内置变量”,例如“argc”、“argv”、“_GET”、“_POST”、“php_errormsg”等。

我试图不惜一切代价避免在我的代码中手动列出这些。我真的不喜欢让这些东西“硬编码”的想法,并感受到随着 PHP 的发展和新版本添加东西到这个列表中而必须保持更新的持续压力。

我希望 PHP 有一个单一的、统一的功能,例如:

var_dump(is_php_stuff('mb_strpos'));
var_dump(is_php_stuff('$_GET'));
var_dump(is_php_stuff('_GET'));
var_dump(is_php_stuff('argc'));
var_dump(is_php_stuff('if'));
var_dump(is_php_stuff('myownstuff'));

并输出:

true
true
true
true
true
false

那肯定会非常膨胀,但到目前为止,我很确定不存在这样的事情。

标签: phpbuilt-in

解决方案


推荐阅读