Un opcode de VM spécialisé pour la fonction
array_key_exists() a été ajouté, ceci améliore les
performances de cette fonction si elle peut être résolue statiquement.
Dans du code sous un espace de nom, ceci peut nécessité d'écrire
\array_key_exists()
ou importer explicitement la fonction.
Quand preg_match() en mode UTF-8 (modificateur
"u"
) est appelée à plusieurs reprises sur la même chaîne de caractères
(mais posiblement différentes positions), elle ne sera vérifiée qu'une seule
fois pour la validité UTF-8.
zend.exception_ignore_args est une nouvelle directive INI pour inclure ou exclure les arguments des traces de pile généré par les exceptions.
opcache.preload_user est une nouvelle directive INI permettant de spécifier le compte utilisateur ayant pour rôle d'exécuter le code pré-chargé (l'utilisateur root n'est pas autorisé pour des raisons de sécurité).
Un nombre d'extension ont été migré pour utiliser exclusivement pkg-config
pour la détection des dépendances de bibliothèques. Généralement, ceci
signifie qu'au lieu d'utiliser
--with-foo-dir=DIR ou similaire seul
--with-foo est utilisé. Les chemins de
bibliothèques personalisés peuvent être spécifié soit en ajoutant des
dossiers supplémentaires à PKG_CONFIG_PATH
soit en
spécifiant les options de compilations explicitement à travers
FOO_CFLAGS
et FOO_LIBS
.
Les extensions et SAPIs suivants sont affectées :
fputcsv(),
fgetcsv(),
SplFileObject::fputcsv(),
SplFileObject::fgetcsv(), et
SplFileObject::setCsvControl()
acceptent désormais une chaîne de caractères vide en tant qu'argument
$escape
, qui désactive le mécanisme d'échappement
propriétaire de PHP.
Le comportement de str_getcsv() a été ajusté par conséquent has been (auparavant, une chaîne de caractères vide était identique à utiliser les valeurs par défault).
SplFileObject::getCsvControl() peut, par conséquent désormais aussi retourner une chaîne de caractères vide pour le troisième élément du tableau.
L'extension filter n'expose plus --with-pcre-dir pour les builds Unix qui peut désormais être compilé de manière fiable en tant que partagé lors de l'utilisation de ./configure
Le comportement de imagecropauto() dans la bibliothèque libgd fourni a été synchronisé avec celle de libgd système :
IMG_CROP_DEFAULT
ne se replie plus sur
IMG_CROP_SIDES
La paramètre par défaut $mode
de
imagecropauto() a été modifié en
IMG_CROP_DEFAULT
; fournir -1
est désormais obsolète.
imagescale() supporte désormais la préservation du
rapport hauteur / largeur lors de la mise à échelle à une hauteur fixe
en passant -1
à $new_width
.
L'extension hash ne peut plus être désactivé et est toujours une part intégrale de n'importe quel build PHP, similaire à l'extension date.
L'extension intl requis désormais au moins ICU 50.1.
ResourceBundle implémente désormais Countable.
Support pour nsldap et umich_ldap ont été supprimées.
Toutes les extensiosn basées sur libxml nécessite lib 2.7.6 ou ultérieur.
La bibliothèque oniguruma n'est plus fourni avec PHP, à la place libonig doit être disponible sur le système. Alternativement --disable-mbregex peut être utilisé pour désactiver le composant mbregex.
Les options de configurations --disable-opcache-file et --enable-opcache-file ont été supprimées en faveur de la directive INI opcache.file_cache.
Les fonctions password_hash() et
acceptent désormais des chaîne de caractères et entier nullable pour l'arguement
$algo
.
L'installation de PEAR (inclus PECL) n'est plus activé par défault. Ceci peut être explicitement activé en utilisant --with-pear. Cette option est obsolète et pourra être supprimée dans le futur.
Les valeurs numériques des consantes de modificateur
(IS_ABSTRACT
,
IS_DEPRECATED
,
IS_EXPLICIT_ABSTRACT
,
IS_FINAL
,
IS_IMPLICIT_ABSTRACT
,
IS_PRIVATE
,
IS_PROTECTED
,
IS_PUBLIC
, et
IS_STATIC
) sur les classes
ReflectionClass,
ReflectionFunction,
ReflectionMethod,
ReflectionObject, et
ReflectionProperty
ont été modifié.
SimpleXMLElement implémente désormais Countable.
La bibliothèque libsqlite intégré a été supprimée. Pour compilier l'extension SQLite3 une libsqlite3 ≥ 3.7.4 système est désormais requis. Pour compiler l'extension PDO_SQLite une libsqlite3 ≥ 3.5.0 système est désormais requis.
La linéarisation et délinéarisation de SQLite3, SQLite3Stmt et SQLite3Result est désormais explicitement interdit. Auparavent, la linéarisation d'instances de ces classes étaient possible, mais la dénéarisation générait des objets inutilisables.
La notation @param
peut désormais être utilisé pour
dénoter les paramètres de requête SQL.
La bibliothèque libzip intégré a été supprimée. Une libzip >= 0.11 système est désormais requis pour compiler l'extension zip.