处session以外,任何php变量都在程序结束时消失!

解决方案 »

  1.   

    SESSION 
    COOKIE
    存放文件或數據庫中...
      

  2.   

    像这样就不是 GLOBALS 或者 SESSION 的问题, 而是对 WEB 程序是怎么执行的不了解. 每次刷新一个 WEB 页面有点像调用函数, 函数内部的非静态变量会保留上次调用的状态吗.public function Main() {
      $a = $a + 1;
    }连续执行两次 Main 函数, 第二次调用 Main 的时候, $a 不会变成 2 吧 ? WEB 页面也是一个道理.
      

  3.   

    那到不是,
    jsp和asp有这种机制
    变量在应用程序域起作用,
    服务器reStart值才消失
      

  4.   

    楼主的应用用Session就够了
    文件开头,或者说任何输出之前放:
    session_start();

    $GLOBALS['abc'][]= $file 
    换成:
    $_SESSION["abc"][]=$file同一个会话的页面
    在开头放
    session_start();
    然后用
    $_SESSION["abc"]访问Session域的变量
    Application域的变量可以通过
    php“共享内容”实现
      

  5.   

    “共享内容”php封装的不够好,对于一般应用,也没必要用。
      

  6.   

    PHP好象是没有Application这个概念的:)
    建议存放在cookie里
      

  7.   

    引用 唠叨:
    除session以外,任何php变量都在程序结束时消失!理论决定一切。和app不同,代码不是一直在内存里的
      

  8.   

    最简单的实现Application的方法
    Application.php
    <?php
    function Application() {
      $param = func_get_args();
      switch(count($param)) {
        case 0:
          return null;
        case 1:
          $v = unserialize(file_get_contents('default.global'));
          if(isset($v[$param[0]])) {
            return $v[$param[0]];
          }else {
            return null;
          }
        default:
          $v = unserialize(@file_get_contents('default.global'));
          $v[$param[0]] = $param[1];
          file_put_contents('default.global', serialize($v));
      }
    }
    ?>
    第一个页面
    <?php
    include_once 'Application.php';
    Application('a', 123);
    ?>第二个页面
    <?php
    include_once 'Application.php';
    echo Application('a');
    ?>
      

  9.   

    谢谢各位,用$_SESSION问题就解决了