Я знаю, что этот вопрос кажется взломанным и странным, но есть ли способ удалить функцию во время выполнения на PHP?
У меня есть рекурсивная функция, объявленная в блоке "if", и хочу, чтобы эта функция была "действительной" только в этом блоке "if". Я не хочу, чтобы эта функция вызывалась вне этого блока.
Я узнал runkit_function_remove, но runkit isn 't включен на моем веб-хосте. Есть ли другой способ сделать это?
BTW Я поддерживаю только 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 включены, я хотел бы избавиться от него, когда покончу с этим. Я не хочу, чтобы люди полагались на функцию, которая не всегда существует. Надеюсь, теперь это станет яснее. Предложения, не связанные с хаккой, тоже приветствуются!