Jump to content
  • 0

суперглобальные переменные


iillyyaa2
 Share

Question

есть ли какая то возможность хранить какое то значение в памяти пхп ? (не в базе данных) именно создать какую то переменную, и что бы к ней был доступ из всех скриптов... при необходимости её изменять и т.д.

и что бы это значение было доступно не только из того скрипта, что сохранил, но и из любого другого... (естественно в пределах работы вебсервера, при перезапуске она будет теряться)

Link to comment
Share on other sites

17 answers to this question

Recommended Posts

  • 0

есть ли какая то возможность хранить какое то значение в памяти пхп ? (не в базе данных) именно создать какую то переменную, и что бы к ней был доступ из всех скриптов... при необходимости её изменять и т.д.

и что бы это значение было доступно не только из того скрипта, что сохранил, но и из любого другого... (естественно в пределах работы вебсервера, при перезапуске она будет теряться)

$_SESSION не подходит? или вы другое имели ввиду?

Link to comment
Share on other sites

  • 0

неа, я хочу хранить где то значение к примеру 17, из скриптов опрашивать ту переменную, получать ответ и действовать...

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

внеся одним скриптом значение 17, я хоть через час (при условии, что я его не буду менять) из любого каждого скрипта буду получать то же значение, 17

Edited by iillyyaa2
Link to comment
Share on other sites

  • 0

неа, я хочу хранить где то значение к примеру 17, из скриптов опрашивать ту переменную, получать ответ и действовать...

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

внеся одним скриптом значение 17, я хоть через час (при условии, что я его не буду менять) из любого каждого скрипта буду получать то же значение, 17

Это для всех пользователей одно число? или только для одного? Кто меняет значение и как часто? Хранить значение в кукисах или в файле не подходит?

Link to comment
Share on other sites

  • 0

LunatiK, это число будет одинаковым для всех пользователей, меняться оно будет 1 раз при запуске сервера, изменить число может любой скрипт.

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

нужно для:

есть база данных, она лежит на диске, обычная база данных mysql

и есть её клон, Storage Engine HEAP, при перезапуске сервера данные там теряются, но копия есть в базе на винте..

мы каждым скриптом проверяем, некую переменную, если нет переменной, мы копируем данные в мем.базу, обновляем переменную и работаем уже с данными в памяти.

я могу сделать ещё одну базу данных HEAP и хранить там переменную, так же опрашивая её.. но думал может есть вариант проще, чем делать лишнюю таблицу

Link to comment
Share on other sites

  • 0

Veseloff, честно, никогда не работал со стандартными сессиями.. всегда делал свои и хранил в базе данных..

чуть почитал сейчас..

ini_set('session.save_handler', 'memcache');

я так понимаю, это можно сразу в конфиге записать ?

ini_set('session.save_path', 'tcp://localhost:11211');

что это такое ?? оно само поднимается при старте сессий ?? или что это ?

session_start();

юзеру ничего не будет выдано при этом ? какие то переменные в куки или что то ещё ?

могу ли я это запустить в середине кода ?

if ( isset($_SESSION['myValue']) === false )

к примеру так я могу проверить есть ли переменная, верно ?

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

Link to comment
Share on other sites

  • 0

ini_set('session.save_path', 'tcp://localhost:11211');

что это такое ?? оно само поднимается при старте сессий ?? или что это ?

нет, это указывается своя директория для хранения сессии, подробности в этой теме.

session_start();

юзеру ничего не будет выдано при этом ? какие то переменные в куки или что то ещё ?

могу ли я это запустить в середине кода ?

нет, в середине кода это запускать нельзя, про сессии почитайте тут

if ( isset($_SESSION['myValue']) === false )

к примеру так я могу проверить есть ли переменная, верно ?

да, так можно проверить.

Link to comment
Share on other sites

  • 0

нужно для:

есть база данных, она лежит на диске, обычная база данных mysql

и есть её клон, Storage Engine HEAP, при перезапуске сервера данные там теряются, но копия есть в базе на винте..

мы каждым скриптом проверяем, некую переменную, если нет переменной, мы копируем данные в мем.базу, обновляем переменную и работаем уже с данными в памяти.

А что мешает скрипту при отсутствии данных в «мем.базе» копировать их туда из той что на винте?

Link to comment
Share on other sites

  • 0

Veseloff, честно, никогда не работал со стандартными сессиями.. всегда делал свои и хранил в базе данных..

чуть почитал сейчас..

ini_set('session.save_handler', 'memcache');

я так понимаю, это можно сразу в конфиге записать ?

ini_set('session.save_path', 'tcp://localhost:11211');

что это такое ?? оно само поднимается при старте сессий ?? или что это ?

session_start();

юзеру ничего не будет выдано при этом ? какие то переменные в куки или что то ещё ?

могу ли я это запустить в середине кода ?

if ( isset($_SESSION['myValue']) === false )

к примеру так я могу проверить есть ли переменная, верно ?

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

Прочитали статью на хабре про хранение сессий в мемкэшде? Промазали. Мемкэшд умеет не только хранить сессии. Гуглите дальше.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy