Alten Code mit neuen PHP-Versionen benutzen
Dadurch, dass PHP eine immer beliebtere Skriptsprache ist, gibt es
immer mehr öffentliche Quellen und Bibliotheken mit Code, den Sie
wieder verwenden können. Die PHP-Entwickler haben versucht, den
größten Teil der Sprache abwärtskompatibel zu halten. Das bedeutet,
dass ein Skript, das für eine ältere PHP-Version geschrieben wurde,
(im Idealfall) ohne Änderungen auch unter einer neueren PHP-Version
läuft. In der Praxis sind aber meist einige Änderungen nötig.
Zwei der wichtigsten aktuellen Änderungen, die alten Code betreffen, sind:
-
Die Missbilligung der alten $HTTP_*_VARS-Arrays
(die global gemacht werden mussten, wenn man sie innerhalb einer Funktion
nutzen wollte). Die folgenden Superglobalen Arrays
wurden in PHP » 4.1.0
eingeführt: $_GET, $_POST,
$_COOKIE, $_SERVER,
$_FILES, $_ENV,
$_REQUEST und $_SESSION.
Die älteren $HTTP_*_VARS-Arrays,
wie $HTTP_POST_VARS, existieren nach wie vor.
Seit PHP 5.0.0 können Sie die
Registrierung der langen von PHP
vordefinierten Arrays mit der Konfigurationsoption
register_long_arrays
abschalten.
-
Externe Variablen werden standardmäßig nicht mehr im globalen Namensraum
registriert. Mit anderen Worten, seit PHP
» 4.2.0 ist off
die Standard-Einstellung für die PHP-Direktive
register_globals.
Die empfohlene Methode, auf diese Werte zuzugreifen, ist, die oben genannten
superglobalen Arrays zu verwenden. Ältere Skripte, Bücher und Tutorials gehen
eventuell davon aus, dass diese Einstellung auf on steht.
Wäre die Einstellung z.B. on, dann wäre die Variable $id aus
dem URL http://www.example.com/foo.php?id=42 verfügbar.
Unabhängig davon, ob on oder off, ist $_GET['id'] immer
verfügbar.
Für weitere Details über diese Änderungen siehe die Seite über
vordefinierte Variablen
und die Links dort.