PHP BlogAhora que PHP ha crecido y se ha convertido en un lenguaje popular, hay muchos más repositorios y librerías 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 URLhttp://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.