## 変更された関数

### PHP コア

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

### ファイルシステム

- file_get_contents() 関数は、ストリームがシーク可能な場合、 負のシークオフセットを受け入れるようになりました。
- 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() 関数は、 セッションを開始できなかった場合、`false` を返し、 $_SESSION を初期化することはなくなりました。

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