getopt() has an optional third parameter that exposes
the index of the next element in the argument vector list to be processed.
This is done via a by-ref parameter.
getenv() no longer requires its parameter. If the
parameter is omitted, then the current environment variables will be
returned as an associative array.
get_headers() now has an additional parameter to enable
for the passing of custom stream contexts.
parse_url() is now more restrictive and supports
RFC3986.
unpack() now accepts an optional third parameter to
specify the offset to begin unpacking from.
File System
file_get_contents() now accepts a negative seek offset
if the stream is seekable.
tempnam() now emits a notice when falling back to the
system's temp directory.
JSON
json_encode() now accepts a new option,
JSON_UNESCAPED_LINE_TERMINATORS, to disable the
escaping of U+2028 and U+2029 characters when
JSON_UNESCAPED_UNICODE is supplied.
PDO::lastInsertId() for PostgreSQL will now trigger an error
when nextval has not been called for the current
session (the postgres connection).
PostgreSQL
pg_last_notice() now accepts an optional parameter to
specify an operation. This can be done with one of the following new
constants: PGSQL_NOTICE_LAST,
PGSQL_NOTICE_ALL, or
PGSQL_NOTICE_CLEAR.
pg_fetch_all() now accepts an optional second parameter
to specify the result type (similar to the third parameter of
pg_fetch_array()).
pg_select() now accepts an optional fourth parameter to
specify the result type (similar to the third parameter of
pg_fetch_array()).
Session
session_start() now returns false and no longer
initializes $_SESSION when it failed to start the
session.
substr() and iconv_substr() now return an empty string,
if string is equal to start characters long.
xml_parser_free() is no longer sufficient to free the
parser resource, if it references an object and this object references that
parser resource. In this case it is necessary to additionally unset the $parser.
MessageFormatter::format() and related functions
now accept named arguments and mixed numeric and named arguments when PHP
is linked to ICU 4.8 or later.
MessageFormatter::format() and related functions
no longer error when an insufficient number of arguments have been
provided. Instead, the placeholders will not be substituted.