Macht der folgende Code Sinn ?:
%Vor% Soweit ich weiß, ist $HTTP_XXX_VARS
gleich mit $_XXX
, außer dass $HTTP_XXX_VARS
veraltet ist. Daher verstehe ich den obigen Code nicht.
Gibt es einen Fall, in dem zwei Variablen in einem alten System anders sind, in dem $HTTT_XXX_VARS
nicht als veraltet gilt?
$HTTP_SERVER_VARS
und $_SERVER
sind unterschiedliche Variablen (wenn beide gesetzt sind). Sie enthalten anfangs die gleichen Werte, unterscheiden sich jedoch dadurch, dass sich die Änderungen, die das Skript an einem von ihnen vornimmt, nicht auf den anderen auswirken.
Die superglobals
( $_GET
, $_POST
, $_SERVER
etc ) wurden auf PHP 4.1
eingeführt. Die lang benannten Variablen ( $HTTP_GET_VARS
, $HTTP_SERVER_VARS
usw.) wurden für PHP 4.1
veraltet und sie wurden für PHP 5.4
entfernt.
PHP 5.0
hat die Konfigurationseinstellung register_long_arrays
eingeführt wurde verwendet, um PHP
anzuweisen, die alten Variablen mit langem Namen zu erstellen (oder nicht) ( $HTTP_GET_VARS
und der Rest). Die Einstellung wurde für PHP 5.3
veraltet und zusammen mit PHP 5.4
(zusammen mit den Arrays mit langem Namen) entfernt.
Wie Sie sehen können, waren zwischen PHP 4.0
und PHP 5.4
eine oder beide Versionen dieser Variablen für den Programmierer verfügbar.
Die Zeile:
%Vor% nutzt die neue superglobale Variable $_SERVER
, falls verfügbar (auf PHP >= 4.1
), fällt aber auf die alte $HTTP_SERVER_VARS
zurück, wenn sie auf der älteren PHP
läuft. Es wurde wahrscheinlich vor Jahren geschrieben, während PHP 4
immer noch auf vielen Servern verwendet wurde.
Außer im unwahrscheinlichen Fall, wenn Sie bei PHP 4.0
festsitzen, können Sie die obige Zeile auf folgende Weise ändern:
oder einfach $_SERVER
anstelle von $t_server
überall verwenden.
Tags und Links php