# session_name

(PHP 4, PHP 5, PHP 7)

session_name — 读取/设置会话名称

### 说明

session_name ([ string `$name` ] ) : string

session_name() 函数返回当前会话名称。 如果指定 `name` 参数， session_name() 函数会更新会话名称， 并返回 原来的 会话名称。

如果使用 `name` 指定了新字符串作为会话 cookie 的名字， session_name() 函数会修改 HTTP 响应中的 cookie （如果启用了 session.transid，还会输出会话 cookie 的内容）。 一旦在 HTTP 响应中发送了 cookie 的内容之后， 调用 session_name() 函数会产生错误。 所以，一定要在调用 session_start() 函数之前 调用此函数。

请求开始的时候，会话名称会被重置并且存储到 session.name 配置项。 因此，要想设置会话名称，那么对于每个请求，都需要在 调用 session_start() 函数 之前调用 session_name() 函数。

### 参数

`name`

  用在 cookie 或者 URL 中的会话名称， 例如：PHPSESSID。 只能使用字母和数字作为会话名称，建议尽可能的短一些， 并且是望文知意的名字（对于启用了 cookie 警告的用户来说，方便其判断是否要允许此 cookie）。 如果指定了 `name` 参数， 那么当前会话也会使用指定值作为名称。

  Warning

  会话名称至少需要一个字母，不能全部都使用数字， 否则，每次都会生成一个新的会话 ID。

### 返回值

返回当前会话名称。如果指定 `name` 参数，那么此函数会更新会话名称，并且 返回 原来的 会话名称。

### 范例

Example #1 session_name() 示例

    <?php

    /* 设置会话名称为 WebsiteID */

    $previous_name = session_name("WebsiteID");

    echo "The previous session name was $previous_name<br />";
    ?>

### 更新日志

版本 | 说明
--- | ---
7.2.0 | session_name() 函数会检查会话状态， 之前的版本仅仅检查 cookie 状态。 所以，旧版本的 PHP 允许你在调用 session_start() 函数之后再调用 session_name() 函数， 新版本的 PHP 不再允许这样做了。

### 参见

- session.name 配置指示