Задать вопрос
Denisov80
@Denisov80
Юный Программист

Как создать Глобальную переменную PHP?

Подскажите как можно создать Глобальную переменную, в смысле чтоб к ней можно было обращаться из PHP скрипта, запущенного от разных клиентов?

Требуется чтоб при обращении к определенному php файлу, он в свою очередь создавал временные переменные, которые должны сохраняться некоторое время (например 5-10 минут), и эти переменные должны быть доступны при запросе данного файла от Разных клиентов.
После истечения времени от момента создания переменных, они должны удаляться, либо инициализироваться снова (уже другим значением) - при очередном запросе данного php

Т.е. при запросе, функция проверяет - не истёк ли период времени жизни переменных, если истек - то создаем снова и работаес дальше по скрипту, либо сразу работаес по скрипту - со старым значением в переменной.

Думал сделать на Сессиях, но при старте сессии - читается Определенный id сессии, откуда требуется читать Данные от пользователя, ранее записанные под его id.
  • Вопрос задан
  • 167 просмотров
Подписаться 1 Простой 5 комментариев
Пригласить эксперта
Ответы на вопрос 3
zkrvndm
@zkrvndm
Архитектор решений
Данные размером до 4 кб можно хранить в куках с указанием срока истечения. Все что больше пихайте в базу данных или сохраняйте как локальный json-файл.
Ответ написан
Не надо глобальных переменных.
Те данные, которые нужны разным клиентам - сохраняй в базу данных.

То что ты описываешь, похоже на то как работают кэши.
Ты можешь поднять Redis, делать к нему запрос.
Если данных по ключу нет - вычисляешь их как-то и кладёшь в Redis, указывая TTL 10 минут.

Аналогично ты можешь сделать и с любой другой, более привычной СУБД
Ответ написан
Комментировать
@AndryG
https://www.php.net/manual/ru/intro.memcached.php
Будет хранить в памяти даные указанное время. Все процессы, да и приложеня, смогут добраться до этих данных.
Есть удобные методы для правильного изменения данных (чтобы лишнего не записать, нужное не затереть и т.п.)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы