## 変更された関数

### PHP コア

- getopt() に、オプションの第三引数が追加されました。 これは参照渡しの引数で、処理対象の引数リストの次の要素のインデックスが格納されます。
- getenv() の引数が必須ではなくなりました。 省略した場合は、現在の環境変数の内容を連想配列で返します。
- get_headers() に新たなパラメータが追加されました。 カスタムストリームコンテキストを渡すことができます。
- output_reset_rewrite_vars() は、セッションURLリライト変数をリセットしなくなりました。
- parse_url() がより厳格になり、RFC3986 をサポートするようになりました。
- unpack() にオプションの第三引数が追加されました。 アンパックの開始位置を指定することができます。

### ファイルシステム

- file_get_contents() now accepts a negative seek offset if the stream is seekable.
- tempnam() がシステムの temp ディレクトリを返す場合に、notice を発行するようになりました。

### JSON

- json_encode() に新しいオプション `JSON_UNESCAPED_LINE_TERMINATORS` が追加されました。 `JSON_UNESCAPED_UNICODE` を指定している場合に、 U+2028 と U+2029 のエスケープを無効にします。

### マルチバイト文字列

- mb_ereg() が無効なバイト列を拒否するようになりました。
- mb_ereg_replace() が無効なバイト列を拒否するようになりました。

### PDO

- PostgreSQL 用の PDO::lastInsertId() は、 現在のセッション (postgres コネクション) で 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() now returns `FALSE` and no longer initializes $_SESSION when it failed to start the session.