Сейчас PHP является популярным языком сценариев (скриптов). Становится
все больше и больше распространяемых кусочков кода, которые вы можете
использовать в своих скриптах. В большинстве случаев разработчики
PHP старались сохранить совместимость с предыдущими версиями так, что
код, написанный для более старой версии будет идеально работать и
с новыми версиями языка без каких-либо изменений. Однако случается
так, что изменения все-таки необходимы.
Есть два важных изменения, которые влияют на старые программы:
Объявление массивов $HTTP_*_VARS устаревшими. Эти
массивы требовали глобализации в функциях и процедурах. Новые
суперглобальные
массивы были введены, начиная с PHP
4.1.0.
Это: $_GET, $_POST,
$_COOKIE, $_SERVER,
$_ENV, $_REQUEST, и
$_SESSION. Более старые массивы
$HTTP_*_VARS, такие, как $HTTP_POST_VARS,
существуют со времен PHP 3 и, вероятно, будут еще долго
существовать для сохранения совместимости.
Внешние переменные больше не глобализуются по умолчанию. Другими
словами, директива register_globals в php.ini
по умолчанию отключена ("off"), начиная с PHP
4.2.0.
Рекомендуемый метод доступа к таким переменным - суперглобальные
массивы, описанные выше. Более старые программы, книги и руководства
могут считать, что данная директива включена ("on"). К примеру,
переменная $id может поступать из строки URL
http://www.example.com/foo.php?id=42. Когда указанная
директива выключена, $id доступна лишь как
$_GET['id'].
Для дополнительной информации касательно изменений, связанных с
переменными, смотрите раздел "Предопределенные переменные"
и ссылки этого раздела.