Entfernen einer Funktion, die zur Laufzeit in PHP (ohne die runkit-Erweiterung)

Ich weiß, diese Frage scheint hacky und seltsam, aber gibt es eine Möglichkeit zu entfernen, eine Funktion, die zur Laufzeit in PHP?

Ich habe eine rekursive Funktion deklariert, in einem "wenn" - block und möchten, dass diese Funktion "gültig", nur in diesem "wenn" - block. Ich will nicht, diese Funktion zu callled außerhalb dieses Blocks.

Fand ich heraus, runkit_function_remove aber runkit ist nicht aktiviert auf meinem Web-host. Gibt es einen anderen Weg, das zu tun?

BTW ich habe nur die Unterstützung von PHP 5.1.0.

Edit: ich wusste, dass meine Frage war, hacky, aber hier ist die genaue Sache, die ich tun will:

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');
}

Da "stripslashes_deep" nur live, wenn Magic Quotes AN sind, ich wollte es loswerden, wenn ich fertig bin mit ihm. Ich will nicht Menschen zu verlassen auf eine Funktion, die nicht immer es. Ich hoffe es ist klarer jetzt. Nicht-hacky Lösung Vorschläge sind auch willkommen!

  • Jeder Grund, warum Sie nicht einfach nur nennen Sie es nicht?
  • Rufen Sie nicht, was?
  • Seien Sie vorsichtig! Array-keys sind auch gekürzt durch magic quotes.
InformationsquelleAutor AlexV | 2010-01-22
Schreibe einen Kommentar