Переменные в PHP. Видна ли переменная объявленная через @GLOBALS в других сеансах?
Если я в скрипте объявляю переменную через массив @GLOBALS, видна ли она будет в других сессиях этого скрипта запущенных другими пользователями?
Пример: в переменную записываем некоторое сообщение @GLOBALS['anytext'] = "Hello". Другой пользователь заходит и скрипт пытается считать из этой переменной. Получится ли у него?
Ответы (2 шт):
Нет. Она доступна во всех контекстах скрипта. https://www.php.net/manual/ru/reserved.variables.globals.php
Если хотите передавать переменную между пользователями, то можно записывать ее в файл или memcache (redis)
Нет, не будет, потому что все инициализированные переменные, экземпляры классов и состояние самого приложения сохраняются только в течение времени, пока выполняется текущий скрипт. При новом обращении к веб-серверу приложение и все переменные инициализируются заново.
Если вам требуется сохранить какую-то информацию, чтобы она была доступна в разных сеансах, то вы можете воспользоваться одним из следующих способов:
- Сессии, с помощью глобальной переменной
$_SESSION. - Запись в файл и последующее чтение из него.
- Кэширование данных.
- Запись в какую-либо таблицу в базе данных.
Какой способ более предпочтительный — зависит уже от формата и объёма данных.