asp 和 jsp 都有自己特定的运行环境:IIS、tomcat,而 php 没有
php 可将自己挂载至任何 web 服务器中,asp 和 jsp 就不行至少在 php 诞生之初,内存要比磁盘贵的多。而且不同操作系统中的内存设备的访问也不像文件系统访问那么规范
所以 php 选择了默认文件方式,当然你也可以指定为其他方式session_start() 是创建一个会话或恢复基于当前的会话ID的会话如果你不想使用 session_start ,也可以设置 session.auto_start = 1 来通知 php 始终使用 session

解决方案 »

  1.   

    php是服务端脚本语言,没有运行容器,因此只能一次请求,解析,处理,响应。不能在服务器内存持久保存数据,只能持久化到磁盘中。
    当需要在脚本中使用session时,因为不通脚本是独立的,需要在脚本每次都声明启动session,告知脚本需要读取session数据
      

  2.   

    要使用基于 cookie 的会话, 必须在输出开始之前调用 session_start() 函数。
      

  3.   

    session是在服务器端存在的,session_start()是开启这一功能的开关,必不可少。
      

  4.   

    没有为什么,就是这样设计的。如果真要说为什么,我想是为了节省资源提高性能吧,毕竟还是有很多地方不需要用到Session的。