<?php
session_start();
$s1="这是字符串";
$s2="12";
$s3="12.3";
$s4="false";
session_register("s1");
session_register("s2");
session_register("s3");
session_register("s4");
$_SESSION["s5"]=array(1,2,3,4,5);
$_SESSION["s6"]="error";
$_SESSION["s7"]="3.1415926";
echo"遍历$"."_SESSION:<br>";
foreach($_SESSION as $key=>$value)
{
echo"$key=>$value<br>";
}
$_SESSION["s7"]="3.14159";
if(session_is_registered("s7"))
{
echo"PI的近似值是:".$_SESSION["s7"]."<br>";
}
unset($_SESSION["s4"]);
session_unregister("s6");
$_SESSION["s7"]=null;
echo"遍历删除指定数组成员后的$"."_SESSION:<br>";
foreach($_SESSION as $key=>$value)
{
echo"$key=>$value<br>";
}
session_unset();
?>我运行出来的答案是:
遍历$_SESSION:
s1=>
s2=>
s3=>
s4=>
s5=>Array
s6=>error
s7=>3.14159
遍历删除指定数组成员后的$_SESSION:
s1=>
s2=>
s3=>
s5=>Array
s7=>为什么;这里两次的s1,s2,s3都什么也没有输出。 
谢谢高手帮忙指教~~~!!!

解决方案 »

  1.   

    哎。。为什么又是不看文档的
    If you are using $_SESSION (or $HTTP_SESSION_VARS), do not use session_register(), session_is_registered(), and session_unregister(). 现在php里面的session,你直接$_SESSION['s1'] = 'xx';和unset($_SESSION['s1']);就可以了,$_SESSION是超全局变量,不要特别声明哪里都能用
      

  2.   

    $s1="这是字符串";
    $s2="12";
    $s3="12.3";
    $s4="false";
    session_register("s1");
    session_register("s2");
    session_register("s3");
    session_register("s4");这四个第一次遍历时为什么没有输出??
      

  3.   

    注册的 session 变量,在下一次进入时开始生效
      

  4.   

    如果是注册的 session 变量,在下一次进入时开始生效
    但是有一部分又是输出了多嘛
    遍历$_SESSION:
    s1=>
    s2=>
    s3=>
    s4=>
    s5=>Array
    s6=>error
    s7=>3.14159
      

  5.   

    注册的 session 变量,在下一次进入时开始生效所以没有输出,后面的因为已经撤销说以没有输出