会话变量之间的区别是什么? php中的全局变量?

时间:2013-02-13 07:00:59

标签: php

会话与会议之间的区别是什么? php中的全局变量?

5 个答案:

答案 0 :(得分:30)

全局变量是整个应用程序仍然常见的变量......它们的值可以在整个应用程序中使用,而会话变量是整个应用程序常见的变量应用,但对于一个特定的用户。它们也可以在整个应用程序中使用......但是当特定的用户会话结束时它们就会消失。

答案 1 :(得分:3)

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"
}

globalsuperglobals之间存在一些混淆:Superglobals(如$ GLOBALS,$ _REQUEST,$ _SERVER)可在任何范围内使用,无需您做一个全球宣言。同样,它们不会在页面之间保留($ _SESSION除外)。

$ _ SESSION是一个超级全局数组,可以在不同的页面中持续存在。

答案 2 :(得分:1)

会话变量是存储在服务器端的变量,用于给定的客户端连接。

全局变量是在php代码中具有通用(全局...)范围的变量。这些变量不一定依赖于给定的客户端连接

会议

见: http://www.php.net/manual/en/book.session.php

对于全局变量,请参阅: http://www.tutorialspoint.com/php/php_global_variables.htm

最后,这类问题不适合本论坛,请参阅: https://stackoverflow.com/faq#dontask

“你应该只根据你面临的实际问题提出实际的,可回答的问题。健谈,开放式问题会削弱我们网站的实用性,并将其他问题从头版推出。

您的问题应该合理范围。如果你能想象一本完整的书来回答你的问题,你会问得太多。

如果你提出问题的动机是“我想参加关于______的讨论”,那么你不应该在这里问。但是,如果你的动机是“我希望别人向我解释______”,那么你可能还可以。 (我们的实时网络聊天当然欢迎讨论。)“

答案 3 :(得分:1)

全局变量是在任何函数或类范围之外声明的任何变量,并且使用global关键字在另一个函数中使用,例如。

$a = 123; // this is a global variable
function foo()
{
    global $a; // and this is the explicit declaration
}

超级全局变量就像常规全局变量,除了它们在函数中被隐式声明为全局,因此它们总是可用的。

最后,会话变量可以通过超级全局$_SESSION访问,并通过发送和接受会话标识符来延续。

答案 4 :(得分:1)

全局变量是可以在所有php文件中访问的变量,php定义了一些可用于所有php脚本的全局变量。 前 - $ _POST,$ _SESSION,$ _REQUEST。

global也是一个关键字,当您想要访问在函数外部定义的变量时使用该关键字。

  <?php
  $name = "xyz" ;
  function hello(){
  global $name ;
  echo $name ;
  }

  ?>