Кэширование — Как PHP управляет статическими и глобальными переменными?

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

В частности, это является результатом вызова метода, который извлекает и возвращает небольшой объект JSON — я пытаюсь запомнить этот вызов, сохраняя это значение в глобальном, и это, кажется, работает большую часть времени. Однако, как я уже говорил, время от времени это явно сбрасывается.

PHP когда-нибудь сбрасывает статические или глобальные переменные? Этот пост упоминает что-то о цикле выполнения и сбросе статики как побочный эффект. Это точно?

0

Решение

Я думаю, что понял ваш вопрос.
Поэтому я постараюсь ответить на него:

Ключевое слово, которое нужно понять из этой статьи, состоит в том, что переменные, которые вы объявляете как статические (глобальные переменные), действительны только для «текущего цикла выполнения». Означает, что если другой процесс выполняет этот сценарий, сценарии не будут иметь такие же объявленные статические глобальные переменные, они будут полностью «сброшены». Поэтому обычно, когда запрос поступает на веб-сервер, веб-сервер обслуживает ваши файлы PHP в отдельном процессе. Насколько я понимаю, PHP «сбрасывает» глобальные статические переменные только после полного выполнения скрипта, а НЕ изредка во время выполнения.

Надеюсь это ответит на твой вопрос

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]