Hallo borisbaer,
sorry, wenn das nicht klar geworden ist.
alles gut - das ist ein typischer Fall von Betriebsblindheit: Du kennst dein Projekt, du kennst deinen Code, und du weißt, was du an welcher Stelle und mit welcher Methode erreichen willst. Andere wissen das nicht und müssen raten.
Also, in dem obigen Quellcode definiere ich bei jeder function (außer den ersten beiden) die Variable
$current
:if (!empty($_GET['subpage'])) { $current = $_GET['subpage']; }
Das tue ich, weil ich im Folgenden diese Variable benötige, nämlich bspw. an dieser Stelle:
<a class="<?= $current === 'releases' ? 'current' : ''; ?>" href="releases">Releases</a>
Das schreit doch nach einer globalen Definition.
Der ganze Quellcode wird übrigens per php include eingefügt und wenn ich versuche, die Variable
$current
als globale Variable außerhalb der function zu definieren, dann kommt die Fehlermeldung, die Variable$current
sei nicht definiert, sprich die function kommt nicht an diese globale Variable ran und ich frage mich, warum.
Hast du denn auch daran gedacht, sie mit dem Schlüsselwort global in die Funktion(en) zu importieren?
Aber Funktionen, die auf globale Variablen zugreifen, sind sowieso unschön. Wie wär's, wenn du $current im globalen Scope definierst und als Parameter an die Funktionen übergibst, die diesen Wert brauchen? Dann wäre nur im globalen Scope, der ja sowieso alles zusammenklebt, ein bisschen "Magic", aber alle Funktionen wären autark.
Einen schönen Tag noch
Martin
Мир для України.