Sé que esta pregunta parece hacky y raro, pero hay una manera de eliminar una función en tiempo de ejecución en PHP?Extracción de una función en tiempo de ejecución en PHP
que tienen una función recursiva declarada en un bloque "if" y quieren que la función sea "válido" sólo en ese bloque "if". No quiero que esta función sea llamada fuera de este bloque.
Encontré runkit_function_remove pero runkit no está habilitado en mi host de web. ¿Hay alguna otra forma de hacer eso?
Por cierto que sólo el soporte de PHP 5.1.0.
Editar: sabía que mi pregunta era hacky pero aquí es exactamente lo que quiero hacer:
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');
}
Desde "stripslashes_deep" sólo se vivo cuando Cotizaciones mágicas están en ON, quería deshazte de él cuando haya terminado con él. No quiero que la gente confíe en una función que no siempre es allí. Espero que esté más claro ahora. ¡Las sugerencias de soluciones no-hacky son bienvenidas también!
¿Por qué no puedes ** simplemente no llamarlo **? –
¿No llamas a qué? – AlexV
¡Ten cuidado! Las teclas de matriz también están recortadas por comillas mágicas. –