php session支持,SESSION支持

# SESSION支持

[上一页](# "上一页")[下一页](# "下一页")

系统提供了Session管理和操作的完善支持,全部操作可以通过一个内置的session函数完成,该函数可以完成Session的设置、获取、删除和管理操作。

### session初始化设置

如果session方法的第一个参数传入数组则表示进行session初始化设置,例如:

~~~

session(array('name'=>'session_id','expire'=>3600));

~~~

支持传入的session参数包括:

| 参数名 | 说明 |

|-----|-----|

| id | session_id值 |

| name | session_name 值 |

| path | session_save_path 值 |

| prefix | session 本地化空间前缀 |

| expire | session.gc_maxlifetime 设置值 |

| domain | session.cookie_domain 设置值 |

| use_cookies | session.use_cookies 设置值 |

| use_trans_sid | session.use_trans_sid 设置值 |

| type | session处理类型,支持驱动扩展 |

Session初始化设置方法无需手动调用,在Think\App类的初始化工作结束后会自动调用,通常项目只需要配置`SESSION_OPTIONS`参数即可,`SESSION_OPTIONS`参数的设置是一个数组,支持的索引名和前面的session初始化参数相同。

默认情况下,初始化之后系统会自动启动session,如果不希望系统自动启动session的话,可以设置`SESSION_AUTO_START`为false,例如:

~~~

'SESSION_AUTO_START' =>false

~~~

关闭自动启动后可以项目的公共文件或者在控制器中通过手动调用`session_start`或者`session('[start]')`启动session。

### session赋值

Session赋值比较简单,直接使用:

~~~

session('name','value'); //设置session

~~~

### session取值

Session取值使用:

~~~

$value = session('name');

// 获取所有的session 3.2.2版本新增

$value = session();

~~~

### session删除

删除某个session的值使用:

~~~

session('name',null); // 删除name

~~~

要删除所有的session,可以使用:

~~~

session(null); // 清空当前的session

~~~

### session判断

要判断一个session值是否已经设置,可以使用

~~~

// 判断名称为name的session值是否已经设置

session('?name');

~~~

### session管理

session方法支持一些简单的session管理操作,用法如下:

### session('[操作名]');

支持的操作名包括:

| 操作名 | 含义 |

|-----|-----|

| start | 启动session |

| pause | 暂停session写入 |

| destroy | 销毁session |

| regenerate | 重新生成session id |

使用示例如下:

~~~

session('[pause]'); // 暂停session写入

session('[start]'); // 启动session

session('[destroy]'); // 销毁session

session('[regenerate]'); // 重新生成session id

~~~

### 本地化支持

如果在初始化session设置的时候传入`prefix`参数或者单独设置了`SESSION_PREFIX`参数的话,就可以启用本地化session管理支持。启动本地化session后,所有的赋值、取值、删除以及判断操作都会自动支持本地化session。

本地化session支持开启后,生成的session数据格式由原来的`$_SESSION['name']` 变成 `$_SESSION['前缀']['name']`。

### session handler支持

初始化session设置的时候如果传入了`type`参数或者设置了`SESSION_TYPE`参数的话,则会自动引入对应的Session处理驱动,驱动目录位于Library/Think/Session/Driver目录下面(详见扩展部分)。

[上一页](# "上一页")[下一页](# "下一页")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值