Gibt es eine Möglichkeit, den Gültigkeitsbereich von require_once() explizit auf global???

Ich bin auf der Suche nach einem Weg, um den Umfang der require_once() auf die Globale Reichweite, wenn require_once() verwendet wird, innerhalb einer Funktion. So etwas wie der folgende code sollte funktionieren:

Datei `foo.php':

<?php

$foo = 42;

tatsächlichen code:

<?php

function includeFooFile() {
    require_once("foo.php"); //scope of "foo.php" will be the function scope
}

$foo = 23;

includeFooFile();
echo($foo."\n"); //will print 23, but I want it to print 42.

Gibt es eine Möglichkeit explizit den Umfang der require_once()? Gibt es einen schönen workaround?

  • Der Umfang der require_once ist explizit festgelegt, Sie definieren, Sie zu nutzen.
  • Ich denke, der kann eine schreckliche Arbeit um, wenn Sie wollen, dass...
  • Gibt es nicht. Sie müssen ausdrücklich Liste der Variablen, die ein Aliasing in den globalen Bereich. Entweder in der Funktion oder über den include-Skript.
  • Wahrscheinlich sollten Sie es als eine Antwort ^^
  • Warum sind Sie die Verpackung einer require_once() in einer Funktion?
  • Der obige code ist nur ein Beispiel für meine Frage. In meiner Anwendung habe ich eine Funktion, in der ich laden will ein dynamisch berechnete Liste der Quellcode-Dateien.
  • Sie sind sich bewusst, dass require_once nur eingeschränkt verwenden, da es wird definieren Sie die Variablen nur einmal?
  • Ja, ich bin mir dessen bewusst... Danke für deinen Hinweis^^.
  • möglich, Duplikat der führen Sie die Funktion block im Kontext der globalen namespace in PHP

Schreibe einen Kommentar