Använda gammal kod i nyare versioner av PHP
Nu när PHP har växt och blivit ett populärt scriptspråk har det
medfört att det finns många källor till PHP-kod på internet, från vilka
du kan hämta kod som
du kan använda i dina egna script. För det mesta har utvecklarna
av PHP försökt att göra språket bakåt-kompatibelt så att script skrivna
i äldre versioner av PHP även ska kunna köras utan förändringar i
nyare versioner, tyvärr är det inte alltid så idealiskt utan några
förändringar behövs oftast.
De två viktigaste av de senaste förändringarna som påverkar äldre kod är:
-
Du rekommenderas inte längre att använda de äldre
$HTTP_*_VARS-arrayerna (som behövde deklareras
som globala om de användes i en funktion). Följande
autoglobala
arrayer introducerades i PHP » 4.1.0:
$_GET, $_POST,
$_COOKIE, $_SERVER,
$_ENV, $_REQUEST, and
$_SESSION. De äldre
$HTTP_*_VARS-arrayerna, t.ex. $HTTP_POST_VARS,
existerar fortfarande såsom de gjort sen PHP 3.
-
Externa variabeler registreras inte längre med automatik i det
globala "variabelscopet". Med andra ord, från PHP
» 4.2.0 har PHP-direktivet
register_globals satts
till off som standard i php.ini. Du bör
istället använda de autoglobaler som nämnts ovan för att komma åt
datan. Äldre script, böcker och lektioner kan bygga på att
register_globals är
påslaget. Om så är fallet kan du, t.ex. med adressen
http://www.example.com/foo.php?id=42 använda
$_GET['id'] istället för $id
för att komma åt värdet på id. $_GET['id'] sätts
oavsett om register_globals
är påslaget eller inte.
För flera detaljer gällande dessa förändringar, se kapitlet om
fördefinerade variabler
och länkarna däri.