## 变动的函数

### PHP 核心

- getopt() 函数增加了第三个参数，这是一个可选参数。通过以引用的方式传入参数，它可以用来存储参数列表中下一个参数的下标位置。
- getenv() 可以不传入任何参数。如果不传入参数，此函数会以关联数组的形式返回所有的环境变量。
- get_headers() 增加了一个参数，可以用来解析自定义的流上下文。
- output_reset_rewrite_vars() 函数不再重置会话 URL 重写变量了。
- parse_url() 更加严格的限制，并且提供对 RFC3986 的支持。
- unpack() 函数增加第三个参数，这是一个可选参数，用来指定开始解包的位置。

### 文件系统

- file_get_contents() 接受负数作为搜索偏移量，前提是流上下文必须是可搜索的。
- tempnam() 会在退回使用系统临时目录的时候，产生警告。

### JSON

- json_encode() 增加新的选项 `JSON_UNESCAPED_LINE_TERMINATORS`。这个选项可以在指定 `JSON_UNESCAPED_UNICODE` 选项的时候，对于 U+2028 和 U+2029 这两个字符不再进行转义。

### 多子节字符

- mb_ereg() 不接受无效的字节序列。
- mb_ereg_replace() 不接受无效的字节序列。

### PDO

- PDO::lastInsertId() 在用于 PostgreSQL 数据库的时候，如果当前会话（到 PostgreSQL 的数据库连接）上尚未调用过 `nextval`，那么此方法会触发一个错误。

### PostgreSQL

- pg_last_notice() 增加一个用来指定操作的可选参数。可使用以下常量作为此参数的值 `PGSQL_NOTICE_LAST`、`PGSQL_NOTICE_ALL` 或 `PGSQL_NOTICE_CLEAR`。
- pg_fetch_all() 增加第二个参数，这是一个可选参数，它用来指定返回结果的类型（类似于 pg_fetch_array() 的第三个参数）。
- pg_select() 增加第四个参数，这是一个可选参数，它用来指定返回结果的类型（类似于 pg_fetch_array() 的第三个参数）。

### Session

- session_start() 当无法成功初始化会话的时候，返回 `false`，并且不会初始化超级变量 $_SESSION。

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open