Вы на правильном пути.PHP на самом деле ничего не делит.
В веб-контексте приложение php полностью запускается один раз для каждого HTTP-запроса.Это означает, что для каждого HTTP-запроса интерпретатор читает, анализирует и выполняет сценарий (это упрощается - использование кэша кода операции, например, APC снимает накладные расходы на чтение / анализ). суперглобальные , такие как $ _REQUEST и $ _SESSION.Суперглобальные переменные отличаются от обычных глобальных переменных тем, что они автоматически доступны в каждой области, поэтому нет необходимости использовать ключевое слово global
.
Все данные, которые сохраняются между запросами, должны храниться извне.Чтобы обмениваться данными между запросами на поддержание состояния для пользователя, вы обычно используете $ _SESSION, который по умолчанию сериализуется и записывается в файлы на диске (но может быть настроен для использования кэша памяти или базы данных).Данные, которые должны быть разделены между сеансами (что, я полагаю, похоже на область применения в мире JSP), должны храниться где-то снаружи.Вы можете использовать кэш памяти, такой как APC или memcache, или записывать плоские файлы на диск, или вставлять файлы в базу данных, или использовать любую другую схему, которую вы можете придумать.В конце концов, нет ничего встроенного.
Помимо суперглобалей, переменная область видимости довольно скучна.По умолчанию переменные находятся в области, в которой они созданы.
Чтобы сослаться на глобальную переменную в неглобальной области (т. Е. Внутри функции), необходимо импортировать символ в локальную область, используя ключевое слово global
.PHP работает таким образом, чтобы усложнить случайное дублирование глобальных переменных.
Этот материал, и многое другое, довольно хорошо освещен в руководстве .