為 array_key_exists() 函數(shù)添加了一個(gè)專(zhuān)門(mén)的 VM opcache
優(yōu)化,如果該函數(shù)可以被靜態(tài)解析,則可以提高該函數(shù)的性能。如果你在項(xiàng)目中使用了命名空間,可能會(huì)需要使用
\array_key_exists()
來(lái)顯性的導(dǎo)入該函數(shù)。
When preg_match() in UTF-8 mode ("u"
modifier)
is repeatedly called on the same string (but possibly different offsets),
it will only be checked for UTF-8 validity once.
zend.exception_ignore_args is a new INI directive for including or excluding arguments from stack traces generated from exceptions.
opcache.preload_user is a new INI directive for specifying the user account under which preloading code is execute if it would otherwise be run as root (which is not allowed for security reasons).
一些擴(kuò)展已經(jīng)遷移到只使用 pkg-config 來(lái)檢測(cè)庫(kù)的依賴性。一般來(lái)說(shuō),這意味著不再用
--with-foo-dir=DIR 或類(lèi)似的參數(shù),而是使用
--with-foo。自定義庫(kù)的路徑可以通過(guò)向 PKG_CONFIG_PATH
添加額外的目錄,或通過(guò) FOO_CFLAGS
和 FOO_LIBS
來(lái)明確指定。
以下擴(kuò)展和 SAPI 會(huì)受到影響:
fputcsv(),
fgetcsv(),
SplFileObject::fputcsv(),
SplFileObject::fgetcsv(), and
SplFileObject::setCsvControl()
now accept an empty string as $escape
argument,
which disables the proprietary PHP escaping mechanism.
The behavior of str_getcsv() has been adjusted accordingly (formerly, an empty string was identical to using the default).
SplFileObject::getCsvControl() now may also return an empty string for the third array element, accordingly.
The filter extension no longer exposes --with-pcre-dir for Unix builds and can now reliably be built as shared when using ./configure
The behavior of imagecropauto() in the bundled libgd has been synced with that of system libgd:
IMG_CROP_DEFAULT
is no longer falling
back to IMG_CROP_SIDES
The default $mode
parameter of
imagecropauto() has been changed to
IMG_CROP_DEFAULT
; passing -1
is now deprecated.
imagescale() now supports aspect ratio preserving
scaling to a fixed height by passing -1
as $new_width
.
The hash extension cannot be disabled anymore and is always an integral part of any PHP build, similar to the date extension.
Support for nsldap and umich_ldap has been removed.
All libxml-based extensions now require libxml 2.7.6 or newer.
The oniguruma library is no longer bundled with PHP, instead libonig needs to be available on the system. Alternatively --disable-mbregex can be used to disable the mbregex component.
The --disable-opcache-file and --enable-opcache-file configure options have been removed in favor of the opcache.file_cache INI directive.
The password_hash() and functions
now accept nullable string and int for $algo
argument.
Installation of PEAR (including PECL) is no longer enabled by default. It can be explicitly enabled using --with-pear. This option is deprecated and may be removed in the future.
The numeric values of the modifier constants
(IS_ABSTRACT
,
IS_DEPRECATED
,
IS_EXPLICIT_ABSTRACT
,
IS_FINAL
,
IS_IMPLICIT_ABSTRACT
,
IS_PRIVATE
,
IS_PROTECTED
,
IS_PUBLIC
, and
IS_STATIC
) on the
ReflectionClass,
ReflectionFunction,
ReflectionMethod,
ReflectionObject, and
ReflectionProperty
classes have changed.
SimpleXMLElement now implements Countable.
The bundled libsqlite has been removed. To build the SQLite3 extension a system libsqlite3 ≥ 3.7.4 is now required. To build the PDO_SQLite extension a system libsqlite3 ≥ 3.5.0 is now required.
Serialization and unserialization of SQLite3, SQLite3Stmt and SQLite3Result is now explicitly forbidden. Formerly, serialization of instances of these classes was possible, but unserialization yielded unusable objects.
The @param
notation can now also be used to
denote SQL query parameters.
The bundled libzip library has been removed. A system libzip >= 0.11 is now necessary to build the zip extension.