Как долго хранятся и доступны приложению php superglobals?

Как долго хранятся php суперглобальные файлы?

Давайте возьмем это для примера:

<?php 
$x = 75; 
$y = 25;

function addition() { 
  $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; 
}

addition(); 
echo $z; 
?>

Как долго переменные будут доступны для приложения? Один день, один месяц, один год? Навсегда?

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

Я думаю, MySQL мой лучший вариант прямо сейчас. В Coldfusion у вас разные области видимости переменных, т.е. переменные сеанса и переменные приложения.

Спасибо.

В

1 ответ

Решение

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

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

Если вы делаете игру, база данных, вероятно, будет вашим лучшим решением. Они созданы для хранения данных и их возвращения с помощью запросов. Это означает, что вам будет довольно легко хранить данные и возвращать нужные вам данные.

Другие вопросы по тегам