Глобальная переменная PHP, видимая разными клиентами - PullRequest
0 голосов
/ 31 декабря 2018

Долгое время с C - новинка для PHP.

Пожалуйста, извините, если я использую слово / термин в своем вопросе.

У меня есть функция, которая вызывается несколько раз на страницевыполнение.Результат функции зависит от предыдущего подчиненного результата, содержащегося в переменных.Я написал функцию, используя глобальные переменные для этих «промежуточных результатов», чтобы они сохранялись и снова использовались при следующем вызове функции.

Меня беспокоит, когда несколько клиентов обращаются к серверу, запрашивая ту же страницу, что и те,Переменные «sub-result» будут повреждены из-за одновременного выполнения нескольких страниц.

Это проблема?

Если так, могу ли я иметь переменные «sub-result» локальнымик функции, которая вызывается при выполнении страницы и передает их в функцию по ссылке?Это должно ограничивать область действия переменной для выполнения текущей страницы клиента и не затрагиваться другими клиентами, верно?

Если это правильно - есть ли лучший способ сделать это?

1 Ответ

0 голосов
/ 31 декабря 2018

Каждый клиент PHP (лучше сказать запрос) использует свой собственный контекст данных.Это означает, что если 2 клиенты подключены одновременно и выполняют один и тот же код PHP, их переменные не являются общими и не могут влиять друг на друга.

Как указывает Дэн Лугг в комментариях:

Вам нужно будет использовать технологию сохранения внешних данных, чтобы «делиться» значениями между процессами PHP.Любая обычная база данных / магазин / файл (с учетом блокировки) позволит вам поделиться состоянием.Но, как уже упоминалось, никакие переменные (независимо от статических / глобальных модификаторов) не разделяются между процессами

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