Mysql
 sql >> Datenbank >  >> RDS >> Mysql

wie man require_once innerhalb der Funktion verwendet

Aus technischer Sicht können Sie tatsächlich require_once() verwenden innerhalb einer Funktion. Es ist jedoch höchstwahrscheinlich eine schlechte Idee und nicht das, was Sie wirklich tun möchten:

  • Das Einschließen von Code in eine Funktion schließt den dortigen Code buchstäblich ein. Das bedeutet, dass der gesamte enthaltene Code im Rahmen der Funktion ausgewertet wird. PHP deklariert alle Funktionen global, aber Variablen und einfache Codesequenzen sind lokal gebunden, also außerhalb der gerade ausgeführten Funktion nicht sichtbar.

  • Da Sie einen relativen Pfad verwenden, um die enthaltene Datei zu laden, sind Sie darauf beschränkt, Ihre Funktion innerhalb einer bestimmten Dateisystemebene auszuführen. Dies schränkt die Verwendung Ihres Codes ein...

Während dies eigentlich das sein könnte, was Sie wollen, wenn die enthaltene Datei eine lokale Konfiguration enthält, werden Sie mit ziemlicher Sicherheit darüber stolpern:

  • require_once() benötigt nur einmal, dafür ist die Funktion da. Das bedeutet:wenn Sie Ihre Funktion getTierOne() eingeben mehr als ein einziges Mal dann für jeden nachfolgenden Lauf require_once() einfach nicht keinen Code beinhalten, da es schon im ersten Durchlauf vorhanden ist. Es hängt also davon ab, ob Sie Ihre Konfiguration enthalten bekommen oder nicht! Das ist ein schreckliches Design!

Binden Sie also Ihre Konfiguration entweder global ein und speichern Sie sie beispielsweise in einer Variablen, auf die Sie dann in Ihrer Funktion verweisen können, oder Sie verwenden require() oder include() um sicherzustellen, dass die Konfiguration wirklich in jeder Ausführung der Funktion enthalten ist.