Forum und email

Use de código antiguo con nuevas versiones de PHP

Ahora que PHP ha crecido y se ha convertido en un lenguaje popular, hay muchos más recursos que contienen código que puede reusar en sus propios programas. Por lo general, las personas que se encargan del desarrollo de PHP tratan de que el lenguaje sea compatible con versiones anteriores, para que los programas escritos con versiones antiguas continúen funcionando cuando instale una nueva versión de PHP. En un mundo perfecto, nunca necesitaría modificar su código para hacerlo funcionar con versiones nuevas del lenguaje; pero, como todos sabemos, este no es un mundo perfecto, y usualmente son necesarios los cambios en su código.

Dos de los cambios mas importantes que afectan el código viejo son:

  • La desaparición de las matrices $HTTP_*_VARS (que usualmente son usadas como globales al interior de una función o método). Las siguientes matrices autoglobales fueron introducidas en la versión » 4.1.0 de PHP. Estas son: $_GET, $_POST, $_COOKIE, $_SERVER, $_FILES, $_ENV, $_REQUEST, y $_SESSION. Las antiguas $HTTP_*_VARS, como $HTTP_POST_VARS, todavía existen, y han existido desde PHP 3.
  • Las variables externas que ya no son registradas automáticamente. En otras palabras, a partir de PHP » 4.2.0, la directiva PHP register_globals está deshabilitada (su valor es off) en php.ini. El método preferido para obtener acceso a éstos valores es por medio de las "matrices autoglobales" mencionados anteriormente. Los scripts, libros y tutoriales antiguos pueden asumir que ésta directiva es definida automáticamente como "on". Si es así, puede usar, por ejemplo, $id desde la URL https://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 detalles relacionados con estos cambios, puede ver la sección sobre variables predefinidas.