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 » » Вопросы новичков » Получить актуальное значение из сессии

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

1. Botkin - 19 Августа, 2016 - 16:43:03 - перейти к сообщению
У меня есть 2 скрипта, которые выполняются параллельно, в первом скрипте изменяется значение $_SESSION['a'], его не привожу. А второй ниже:

PHP:
скопировать код в буфер обмена
  1.  
  2.         while ($a != 100){
  3.                 $a = $_SESSION['a'];
  4.                         echo $a;
  5.         }      
  6.  


Оно не работает так, как я задумал. Значение $a берется вначале выполнения скрипта и больше не обновляется. Получается бесконечный цикл.
Можно ли както сделать, чтобы значение $a было актуальным на текущий момент времени?
2. Мелкий - 19 Августа, 2016 - 17:09:27 - перейти к сообщению
Мало того, что цикл бесконечный, его будут примерно бесконечность ждать все другие запросы с этим же session_id.

Механизм сессий в PHP для параллельных запросов работает очень просто - только один поток может обрабатывать конкретную сессию. Все остальные ждут.
Под обработкой запроса понимается всё время между вызовами session_start и session_write_close (вызывается при завершении скрипта автоматически)
Т.е. с большой долей вероятности два ваших скрипта сейчас выполняются строго последовательно.

 

Powered by ExBB FM 1.0 RC1