Wir wissen also, dass ab php8 Indizes in arrays, die ohne anführungszeichen mitgegeben werden, konsequenterweise als Konstante behandelt werden und nicht mehr als String, so denn keine Konstante vorhanden. Ebenfalls wird es irgendwann (ich weiß nicht, ab wann, in php8 vermutlich noch nicht, aber irgendwann mal ganz sicher!) mal als
fatal error
ausgeworfen, wenn Parameter in Funktionsaufrufen nicht als String (in Anführungszeichen) übergeben werden.
…
Ich würde gerne ein Script drüber laufen lassen, was mir das ausmerzt. Wäre es immer derselbe Fehler, hatte ich an sowas hier gedacht:
Hab ich verworfen.
Das Skript müsste zwischen
<?php
define('foo', 'Hoppla');
$bar['Hoppla'] = 'Da bin ich.';
echo $bar[foo];
(verteilt auf mehrere includierte Dateien...)
und dem stumpfen
<?php
$bar['Hoppla'] = 'Da bin ich.';
echo $bar[Hoppla];
unterscheiden können.
Das geht nicht ohne Durchlauf, Auswerten des Fehlerkanals/Logfiles, konkretem Ansprung auf die Stelle. Das hat aber wieder eigene Fehlerquellen ($_GET, $_POST, $_SERVER, $_FILES, ...). Und ich möchte nicht dabei sein, wenn da was automatisch ersetzt wurde. Die Fehlersuche kann dann echt aufwendig werden - sofern die Fehler überhaupt bemerkt werden.
Da stellt man sich besser, man liest gleich nur im error-Log und behebt das Step-By-Step