So che questa domanda sembra hacky e strano, ma c'è un modo per rimuovere una funzione in fase di esecuzione in PHP?Rimozione di una funzione in fase di esecuzione in PHP
Ho una funzione ricorsiva dichiarata in un blocco "se" e voglio che quella funzione sia "valida" solo in quel blocco "se". Non voglio che questa funzione venga chiamata al di fuori di questo blocco.
ho scoperto runkit_function_remove ma runkit non è abilitato sul mio host web. C'è un altro modo per farlo?
BTW Sostengo solo PHP 5.1.0.
Edit: sapevo che la mia domanda era hacky, ma qui è la cosa esatta che voglio fare:
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');
}
Dal momento che "stripslashes_deep" sarà solo vivo quando la magia citazioni sono ON, volevo liberatene quando ho finito. Non voglio che le persone facciano affidamento su una funzione che non è sempre lì. Spero sia più chiaro ora. Anche suggerimenti di soluzioni non hacky sono ben accetti!
Qualsiasi motivo per cui non puoi ** semplicemente non chiamarlo **? –
Non chiamare cosa? – AlexV
Stai attento! Le chiavi della matrice sono anche tagliate da virgolette. –