Faktiskt, från en teknisk synvinkel, kan du använda require_once()
inuti en funktion. Men det är troligen en dålig idé och inte vad du verkligen vill göra:
-
inklusive kod i en funktion innehåller bokstavligen koden där. Detta innebär att all inkluderad kod utvärderas inom funktionens omfång. PHP deklarerar alla funktioner globala, men variabler och vanliga kodsekvenser är bundna lokalt, så de är inte synliga utanför den funktion som körs just nu.
-
eftersom du använder en relativ sökväg för att ladda den inkluderade filen är du begränsad till att utföra din funktion från en viss filsystemsnivå. Detta begränsar hur din kod kan användas...
Även om detta faktiskt kan vara vad du vill ha när den medföljande filen har någon lokal konfiguration kommer du nästan säkert att snubbla över detta:
require_once()
kräver bara en gång, detta är vad funktionen är till för. Detta betyder:om du anger din funktiongetTierOne()
mer än en enda gång sedan för varje efterföljande körningrequire_once()
helt enkelt inte inkludera vilken kod som helst, eftersom den redan har gjort det i första körningen. Så om du får din konfiguration inkluderad eller inte beror på! Det är en hemsk design!
Så antingen inkludera din konfiguration globalt och till exempel lagra den i någon variabel som du sedan kan referera till i din funktion eller så använder du require()
eller include()
för att se till att konfigurationen verkligen ingår i varje körning av funktionen.