PHP设置和获取Session

在 PHP 中想要使用 Session 变量,除了必须要启动之外,还要经过设置的过程。设置和获取 Session 中的数据,都要通过访问 $_SESSION 数组来完成。

自 PHP4.1.0 起,$_SESSION 同 $_POST、$_GET 和 $_COOKIE 等一样成为了超级全局数组,但是在使用 $_SESSION 之前必须先使用 session_start() 函数来开启 Session 才行。

$_SESSION 为一个关联数组,和普通关联数组键值对的含义相同。设置 Session 的语法格式如下:

$_SESSION[名称] = 值;

【示例】使用 $_SESSION 定义 Session,并获取 Session 的值。
<?php
    session_start();
    $str = '新宝库';
    $arr = ['Session','$_SESSION'];
    $_SESSION['name']  = $str;
    $_SESSION['url']   = 'https://www.xinbaoku.com/php/';
    $_SESSION['title'] = $arr;

    foreach ($_SESSION as $key => $value) {
        if(is_array($value)){
            echo $key.':';
            print_r($value);
        }else{
            echo $key.' = '.$value.'<br>';
        }
    }
?>
运行结果如下:

name = 新宝库
url = https://www.xinbaoku.com/php/
title:Array ( [0] => Session [1] => $_SESSION )

执行上面的脚本后,不仅会将这几个变量或数组保存到 $_SESSION 中,还会被保存到服务器端由“sess_”和 Session ID 所命名的文件中,这个文件的位置可以通过修改 php.ini 配置文件或使用 session.save_path 配置。而且这个文件可以直接使用文本编辑器打开,文件的内容结构如下所示:

变量名|类型:长度:值;    // Session 中的每个变量都使用相同的结构保存

执行上面的脚本所创建的 Session 文件的内容如下所示:

name|s:16:"新宝库";url|s:27:"https://www.xinbaoku.com/php/";title|a:2:{i:0;s:7:"Session";i:1;s:9:"$_SESSION";}

如果想要修改设置好的 Session 的值,只需要像普通数组那样,重新为 Session 中指定的元素赋值即可,修改后的信息也会同步更新到对应的 Session 文件中。