Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Должен ли я вызывать переменную, которая содержит значение SESSION, вместо вызова фактического сеанса в PHP?

Автор вопроса: JasonDavisОтветов: 2

Если переменная сеанса 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 раз, скорее всего, будет меньше, но распределено по нескольким ключам/значениям сеанса.

phpperformancesession

Ответы

Ответ 1 · рейтинг 3 · Gumbo

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

Ответ 2 · lamas

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

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

с уважением, ламы

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы