В чем разница между сеансом и глобальными переменными в php?
В чем разница между переменными сеанса и глобальными переменными в php?
Ответ 1
Глобальные переменные - это переменные, которые остаются общими для всего приложения... Их значение может использоваться во всем приложении, тогда как Сессионные переменные являются переменными, которые остаются общими для целого но для одного конкретного пользователя. Они также могут использоваться во всем приложении... Но они умирают, когда заканчивается конкретный сеанс пользователя.
Ответ 2
global
- это просто ключевое слово для доступа к переменной, объявленной в области верхнего уровня, и недоступно в фактическом объем. Это не имеет ничего общего с сеансом: не сохраняйте между страницами.
$a = "test";
function useGlobalVar(){
echo $a; // prints nothing, $a is not availabe in this scope
global $a;
echo $a; // prints "test"
}
$GLOBALS
- это еще один способ доступа к переменным области видимости верхнего уровня без использования ключевого слова global
:
$a = "test";
function useGlobalVar(){
echo $GLOBAL['a']; // prints "test"
}
Там немного путаницы между global
и superglobals
: Superglobals (например, $GLOBALS, $_REQUEST, $_SERVER) доступны в любой области без необходимости делать глобальную декларацию. Опять же, они не сохраняются между страницами (за исключением $_SESSION).
$_ SESSION - это суперглобальный массив, который сохраняется на разных страницах.
Ответ 3
Переменные сеанса - это переменная, хранящаяся на стороне сервера, которая сохраняется для данного клиентского соединения.
глобальные переменные - это переменные, которые имеют универсальный (глобальный...) объем в вашем php-коде. эти переменные необязательно зависят от конкретного клиентского соединения.
для сеансов см.: http://www.php.net/manual/en/book.session.php
для глобальных varialbes: http://www.tutorialspoint.com/php/php_global_variables.htm
Наконец, этот тип вопроса не самый подходящий для этого форума, см. https://stackoverflow.com/faq#dontask
"Вы должны задавать только практические, ответные вопросы, основанные на реальных проблемах, с которыми вы сталкиваетесь. Chatty, открытые вопросы уменьшают полезность нашего сайта и вызывают другие вопросы с первой страницы.
Ваши вопросы должны быть разумно охвачены. Если вы можете представить целую книгу, которая отвечает на ваш вопрос, вы слишком много спрашиваете.
Если ваша мотивация задавать вопрос: "Я бы хотела участвовать в обсуждении ______", тогда вы не должны спрашивать здесь. Однако, если ваша мотивация "Я хотел бы, чтобы другие объяснили мне ______", тогда вы, вероятно, все в порядке. (Дискуссии, конечно же, приветствуются в нашем онлайн-чате в режиме реального времени.)
Ответ 4
Глобальные переменные - это любая переменная, объявленная вне любой области действия или класса, и используются внутри другой функции с помощью ключевого слова global
, например
$a = 123; // this is a global variable
function foo()
{
global $a; // and this is the explicit declaration
}
Супер глобальные переменные похожи на обычные глобальные переменные, за исключением того, что они неявно объявляются глобальными внутри функций, поэтому они всегда доступны.
Наконец, переменные сеанса доступны через супер-глобальный $_SESSION
и увековечены путем отправки и принятия идентификатора сеанса.
Ответ 5
глобальные переменные - это те переменные, которые доступны внутри вашего php файла, а php определяет некоторые глобальные переменные, доступные для всех php-скриптов. Ex - $_POST, $_SESSION, $_REQUEST.
global также является ключевым словом, которое используется, когда вы хотите получить доступ к переменной, определенной вне функции.
<?php
$name = "xyz" ;
function hello(){
global $name ;
echo $name ;
}
?>