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