fatal error cannot re-assign auto-global variable _post in

Die Fehlermeldung „fatal error cannot re-assign auto-global variable _post in …“ beendet regelmäßig den Aufruf von Skripten nach Umstellung auf PHP 5.4.

Grund dafür ist das Handling von superglobalen Variablen in PHP 5.4 und $_POST für die Übergabe von Formulardaten gehört natürlich dazu.

Die Variable $_POST darf seit PHP 5.4 nicht mehr als Parameter in Funktion stehen. Das gleiche gilt auch für andere superglobale Variablen, wie $_SESSION, usw… Das muß auch nicht sein, als superglobale Variablen stehen sie sowieso überall zur Verfügung.

Falls Skripte davon betroffen sind empfiehlt sich folgendes:

1. Als schnelle Maßnahme auf PHP 5.2 wechseln

2. Alle Parameter mit Namen von superglobalen Variablen aus Funktionen entfernen

Folgendes wird mit obiger Fehlermeldung von PHP 5.4 quittiert

if($_POST) myvar = func_var($_POST);

function func_var($_POST){
myvar = $_POST[‚var‘];
return(myvar);
}

So wäre alles kompatibel zu PHP 5.4

if($_POST) myvar = func_var();

function func_var(){
myvar = $_POST[‚var‘];
return(myvar);
}

 

Schreibe einen Kommentar