session_start()是session机制的开始,它有一定概率开启垃圾回收,因为session是存放在文件中,PHP自身的垃圾回收是无效的,SESSION的回收是要删文件的,这个概率是根据php.ini的配置决定的。session会判断当前是否有$_COOKIE[session_name()]
第一次访问e.php这个页面会有set-cookie: PHPSESSID=xxxx,
第二次访问e.php这个页面就不会有了。
<?php //if($_COOKIE['viewer']){ // session_id($_COOKIE['viewer']); //} //session_id("session1"); //var_dump($_COOKIE); session_start(); if(!$_SESSION['name']){ $_SESSION['name'] = 'lijinling'; } setcookie("viewer", 'session1', time()+1000, '/test'); var_dump($_SESSION); ~
session_start() 会判断请求过来的, http request header 中是否有$_COOKIE[session_name()];
有的话,就不会setcookie("PHPSESSID", 'xxxx',.....), 没有的话,就会。在response header 中就能看到。