Usando código antiguo en nuevas versiones de PHP
Ahora que PHP ha crecido y se ha convertido en un lenguaje popular, hay
muchos más repositorios y librerias que contienen código que puede reusar.
Los desarrolladores de PHP han tratado en toda medida que sea compatible
con versiones anteriores, es decir, si una secuencia de comandos fue escrita
para una versión antigua en principio funcionaría (idealmente) sin ningún
cambio en una versión reciente de PHP. A la práctica, usualmente algunos
cambios son necesarios.
Dos de los cambios mas importantes que afectan el código viejo son:
-
La desaparición de las antiguas arrays $HTTP_*_VARS
(que usualmente son usadas como globales al interior de una función o
método). Las siguientes variables superglobales
que fueron introducidas en la versión » 4.1.0 de PHP. Son:
$_GET, $_POST,
$_COOKIE, $_SERVER,
$_FILES, $_ENV, $_REQUEST,
y $_SESSION. Las antiguas $HTTP_*_VARS,
como $HTTP_POST_VARS, todavía existen.
A partir de PHP 5.0.0, las arrays de tipo long
variables predefinidas
se pueden desactivar con la directiva
register_long_arrays
.
-
Las variables externas ya no son registradas globalmente de forma
automática, por defecto. En otras palabras, a partir de
PHP » 4.2.0, la
directiva PHP register_globals
está off por defecto en php.ini. El método
preferido para obtener acceso a éstos valores es por medio de las
variables superglobales mencionadas anteriormente. Antiguas secuencias
de comandos, libros y tutoriales antiguos puede que asuman que ésta
directiva está definida como on. Si fuera on,
puede usar, por ejemplo, $id desde la URL
http://www.example.com/foo.php?id=42. Por
otra parte, no importa si el valor de la directiva es on u
off, $_GET['id'] está siempre disponible.
Para más información relacionada con estos cambios, puede ver la
sección sobre
variables predefinidas
y los enlaces que hay dentro.