Должен ли я вызывать переменную, которая содержит значение SESSION, вместо вызова реальной сессии в PHP? - PullRequest
4 голосов
/ 22 января 2010

Если переменная сеанса PHP хранится в файле (как по умолчанию), то, скажем, я сохраняю имя пользователя в переменной сеанса ...

$_SESSION['username'] = 'Jason Davis';

Теперь, когда страница построена, если я вызову $ _SESSION ['username'] 100 раз в процессе построения страницы, попадет ли она на файлы сеанса и прочитает ли их 100 раз?

То же самое, но с сохранением сессии в MySQL. Будет ли он запрашивать базу данных 100 раз, чтобы получить имя пользователя из таблицы сессий?

Я просто пытаюсь выяснить, должен ли я вызывать переменную сеанса 1 раз на странице, а затем сохранить ее в локальной переменной и использовать ее для остальных 99 раз. Вот так ...

$username = $_SESSION['username'];
echo $username; // 100 times throughout all the files that build my page.

Примечание: пожалуйста, поймите, что это всего лишь пример, в действительности мне нужно будет получить доступ не только к сеансу имени пользователя, и 100 раз, скорее всего, будет меньше, но распределено по нескольким ключам / значениям сеанса

Ответы [ 2 ]

3 голосов
/ 22 января 2010

Нет, данные сеанса читаются, когда вызывается session_start, и записываются, когда завершается время выполнения скрипта или вызывается session_write_close.

0 голосов
/ 22 января 2010

Файл читается только при вызове функции session_start () .

Что касается MySQL, если вы сделаете запрос, получите имя пользователя и сохраните его в переменной, дополнительных запросов, естественно, больше не будет. Если вы храните что-то в переменной, это копия, и вам не нужно ничего делать с исходным значением, из которого вы ее получили.

С наилучшими пожеланиями, ламы

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