L'uso di vecchi codici con le nuove versioni di PHP
Da quando il PHP è divenuto un linguaggio di scripting popolare,
esistono più fonti che producono listati di codice che si possono adoperare
nei propri scripts. La maggioranza degli sviluppatori del PHP ha cercato di renderlo
compatibile con le versioni precedenti, perciò uno script creato per una
vecchia versione del PHP dovrebbe girare senza modifiche (in teoria) in una più
recente. In pratica, spesso possono servire delle correzioni.
Ecco due delle più importanti modifiche apportate al vecchio codice:
-
Il disuso dei vecchi arrays $HTTP_*_VARS (che devono essere
dichiarati global quando vengano adoperati all' interno di una funzione o di un metodo).
In PHP » 4.1.0
furono introdotti i seguenti autoglobal arrays:
Essi sono: $_GET, $_POST,
$_COOKIE, $_SERVER,
$_FILES, $_ENV,
$_REQUEST, e $_SESSION. Anche i
vecchi arrays $HTTP_*_VARS, quali
$HTTP_POST_VARS, esistono.
Dal PHP 5.0.0, gli array di
variabili predefinite
possono essere disabilitati con il parametro
register_long_arrays
.
-
Le variabili esterne non vengono più registrate nel global scope per default.
In altre parole, da PHP
» 4.2.0 la direttiva PHP
register_globals è
off per default in php.ini. Il metodo consigliato per accedere
a questi valori è quello che fa uso degli array autoglobali suddetti. Scripts, libri
e tutorials più vecchi possono contare su questa
direttiva su on. Se essa è on, per esempio, qualcuno
potrebbe usare $id dall'URL
http://www.example.com/foo.php?id=42. La variabile,
$_GET['id'] sarebbe disponibile indifferentemente del fatto che sia on od off.
Per ulteriori dettagli su queste modifiche, vedere la sezione sulle
variabili predefinite
ed i links ad essa connessi.