Как долго хранятся и доступны приложению php superglobals?
Как долго хранятся php суперглобальные файлы?
Давайте возьмем это для примера:
<?php
$x = 75;
$y = 25;
function addition() {
$GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
}
addition();
echo $z;
?>
Как долго переменные будут доступны для приложения? Один день, один месяц, один год? Навсегда?
Я создаю многопользовательскую игру, которая представляет собой PHP-веб-приложение. Я просто пытаюсь найти лучший способ хранения постоянных данных.
Я думаю, MySQL мой лучший вариант прямо сейчас. В Coldfusion у вас разные области видимости переменных, т.е. переменные сеанса и переменные приложения.
Спасибо.
В
1 ответ
Глобальные переменные не являются глобальными ни для всего вашего сервера, ни для каждого скрипта, который на нем работает. Они относятся только к одному экземпляру скрипта. Даже два экземпляра одного и того же сценария не могут получить доступ к глобальным переменным друг друга. Итак, после запуска одного экземпляра эти глобальные переменные исчезли. В следующий раз, когда скрипт запустится, у него больше не будет этих глобалов.
Если вы хотите сохранить что-то для использования между экземплярами, вам придется использовать базу данных, сеансы, файл и т. Д. Хотя сеансы будут хранить их только для каждого пользователя, а не глобально для всех экземпляров сценария.
Если вы делаете игру, база данных, вероятно, будет вашим лучшим решением. Они созданы для хранения данных и их возвращения с помощью запросов. Это означает, что вам будет довольно легко хранить данные и возвращать нужные вам данные.