Во-первых, следует объяснить что делает эта директива.
Скажем, используется вот такой URL:
http://example.com/foo.php?animal=cat
и в foo.php у нас находится следующий PHP-код:
<?php
// Использование $_GET в данном случае более предпочтительно
echo $_GET['animal'];
// Чтобы переменная $animal была определена, директива register_globals должна
// быть включена.
// НЕ ДЕЛАЙТЕ ЭТОГО!
echo $animal;
// Это касается всех переменных, включая $_SERVER
echo $_SERVER['PHP_SELF'];
// Опять-таки, чтобы $PHP_SELF была определена, надо включить register_globals
// НЕ ДЕЛАЙТЕ ЭТОГО!
echo $PHP_SELF;
?>
Код выше демонстрирует как register_globals создаёт множество переменных.
Годами такой стиль написания не одобрялся и годами register_globals была
выключена по умолчанию. Несмотря на то, что большинство хостингов отключает
register_globals, осталось ещё много устаревших статей, руководств и
книг, которые требуют включения этой директивы. Действуйте соответственно.
См. также следующие источники за дополнительной информацией: