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 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.