PHP Session恢复和重新写入

session_id("telicode");
session_start();

$tel="13322223333";
$_SESSION[$tel]="4444";

session_id("telicode")在前,session_start()在后。原因“程序恢复session,首先要知道session_id,大家通过手册可以知道session的恢复通过session_id($id);但是在恢复时要注意一个先后顺序,要得到之前session的内容,必须在session_start()之前执行session_id($id),这样才能在执行了session_start时初始化session的时候恢复到之前的内容,否则的话你得到的是一个空的session,你什么也得不到。之前session被重新初始化了。这个和session_start()的作用有密切关系,因为session_start告诉php,session要初始化,要从session文件中反序列化session内容,所以session_start的作用就是把之前存储的文件内容反序列化。session_start序列化之前要知道session_id,如果没有就生成一个新的session_id。如果有就反序列化相应文件的内容。”(摘自网络)

另外,在设置$_SESSION时,如果是$_SESSION["13325002047"]="4444";则不会存在文件中,但是可以用$_SESSION["13325002047"]获取到。

而$_SESSION[13325002047]="4444"是可以存在文件中的,或者像上面代码中那样设置。