在 PHP 中在运行时删除函数(不带 runkit 扩展)
我知道这个问题看起来很笨拙和奇怪,但是有没有办法在PHP中在运行时删除函数?
我有一个在“if”块中声明的递归函数,并希望该函数仅在该“if”块中“有效”。我不希望这个函数被调用到这个块之外。
我发现runkit_function_remove但runkit没有在我的Web主机上启用。还有别的方法可以做到这一点吗?
顺便说一句,我只支持PHP 5.1.0。
编辑:我知道我的问题很棘手,但这是我想做的确切事情:
if (function_exists('get_magic_quotes_gpc') && @get_magic_quotes_gpc())
{
function stripslashes_deep($value)
{
return is_array($value) ? array_map('stripslashes_deep', $value) : stripslashes($value);
}
$_POST = array_map('stripslashes_deep', $_POST);
$_GET = array_map('stripslashes_deep', $_GET);
$_COOKIE = array_map('stripslashes_deep', $_COOKIE);
$_REQUEST = array_map('stripslashes_deep', $_REQUEST);
//runkit_function_remove('stripslashes_deep');
}
由于“stripslashes_deep”只有在Magic Quotes打开时才会存在,因此我想在完成它时摆脱它。我不希望人们依赖一个并不总是存在的功能。我希望现在更清楚了。也欢迎非黑客解决方案建议!