Hallo Martin,
Das schreit doch nach einer globalen Definition.
Hast du denn auch daran gedacht, sie mit dem Schlüsselwort global in die Funktion(en) zu importieren?
habe ich bisher nicht versucht, da hier einem davon abgeraten wird, wenn ich das richtig verstehe: Seit PHP 8.1.0 wird der Schreibzugriff auf das gesamte $GLOBALS-Array nicht mehr unterstützt.
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.
Also, übergeben würde ich den Paramter dann so, oder?
<?php
function game($current) { ?>
<a class="<?= $current === null || $current === 'game' ? 'current' : ''; ?>" href="game">Spiel</a>
<?php }
Aber wo ist denn dieser global scope? Ich bin noch nicht wirklich sehr vertraut mit PHP. In JavaScript wäre er ja außerhalb aller functions, aber bei PHP habe ich keine Ahnung.