Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Своя суперглобальная переменная
Форумы портала PHP.SU » PHP » Программирование на PHP » Своя суперглобальная переменная

Страниц (1): [1]
 

1. hated8 - 27 Октября, 2016 - 19:42:06 - перейти к сообщению
Здравствуйте, в общем задача такая:
Переменная меняет значение раз в сутки. Но к ней идёт много обращений из разных скриптов. Конечно первое что приходит в голову это хранить значение этой переменной в файлике и считывать например file_get_contents, или создать для неё ячейку в мускуле. Но не хотелось бы этого делать опять же из за того что значение меняется редко а обращений много. В идеале было бы обзавестись своей суперглобальной переменной типа $_server чтобы к ней можно было обращаться из любого скрипта.

Подскажите пожалуйста как это сделать?
2. vova3261 - 28 Октября, 2016 - 02:35:11 - перейти к сообщению
Да в общем-то вариантов реализации много если речь идет об обращениях к одной переменной в пределах одного HTTP запроса то можно и в $_SERVER положить. Ну как-то так:
можно положить в сессию для каждого клиента. Ну и если так сильно хочется глобальных переменных установленных по дефолту можно даже через конфоги апача
например так SetEnv MY_VAR "123456"
MY_VAR - будет доступен в $_SERVER. Ну а если эту переменную будут использовать одновременно несколько пользователей и менять ее то без записи ее в файл или БД никак
3. hated8 - 28 Октября, 2016 - 13:20:14 - перейти к сообщению
vova3261 пишет:
Да в общем-то вариантов реализации много если речь идет об обращениях к одной переменной в пределах одного HTTP запроса то можно и в $_SERVER положить. Ну как-то так:
можно положить в сессию для каждого клиента. Ну и если так сильно хочется глобальных переменных установленных по дефолту можно даже через конфоги апача
например так SetEnv MY_VAR "123456"
MY_VAR - будет доступен в $_SERVER. Ну а если эту переменную будут использовать одновременно несколько пользователей и менять ее то без записи ее в файл или БД никак

О том и речь, что будут её использовать разные пользователи... Иначе мне бы и констант или global хватило...
4. LIME - 29 Октября, 2016 - 04:33:58 - перейти к сообщению
я бы положил в key-value хранилище
предпочитаю redis по ряду причин
тебе наверное проще будет класть в mysql
и раз такое дело заведи таблицу для подобных переменных
где есть 2 там есть больше...тут не 2 конечно но смысл тот же)
(Добавление)
напоминаю что mysql активно юзает кэширование в памяти
(Добавление)
ну и для полноты картины
CODE (htmlphp):
скопировать код в буфер обмена
  1. $ export MY_VAR=123456

PHP:
скопировать код в буфер обмена
  1. echo $_ENV['MY_VAR'];

но лучше так не делать

 

Powered by ExBB FM 1.0 RC1