setcookie() et setrawcookie() prennent également la signature suivante :
où$options
est un tableau associatif qui peut avoir l'une
des clés suivantes "expires"
, "path"
,
"domain"
, "secure"
,
"httponly"
et "samesite"
.
Les directives INI suivantes ont été ajoutées pour personnaliser
l'enregistrement, si error_log
est défini sur syslog
:
all
,
no-ctrl
et ascii
.
À partir de PHP 7.3.8, raw
est aussi disponible,
restaurant le comportement de syslog correspondant au versions
antérieures de PHP. Ce filtre affectera aussi les appels à
syslog().
Le GC cyclique a été amélioré, ce qui améliore grandement les performances.
var_export() exporte maintenant les objets
stdClass comme un tableau modifié en objet
((object) array( ... )
), plutôt que d'utiliser la méthode
inexistante stdClass::__setState().
debug_zval_dump() a été modifié pour afficher les tableaux et les objets récursifs de la même manière que var_dump(). Maintenant, il ne les affiche pas deux fois.
array_push() et array_unshift() peuvent maintenant être appelés avec un seul argument, ce qui est particulièrement pratique avec l'opétateur de décomposition.
Les constantes inutilisées PHPDBG_FILE
,
PHPDBG_METHOD
, PHPDBG_LINENO
et
PHPDBG_FUNC
ont été supprimées.
La fonction getallheaders() est maintenant également disponible.
libcurl ≥ 7.15.5 est maintenant nécessaire.
FILTER_VALIDATE_FLOAT
gère maintenant l'option
thousand
, qui définit l'ensemble de caractères de
séparation pour les milliers. La valeur par défaut est ("',."
)
entièrement rétrocompatible avec les anciennes versions PHP.
FILTER_SANITIZE_ADD_SLASHES
a été ajouté comme un alias
du filtre magic_quotes
(FILTER_SANITIZE_MAGIC_QUOTES
).
Le filtre magic_quotes
est susceptible d'être supprimé
dans les futures versions de PHP.
Le mode de transfert par défaut a été modifié pour binary
.
Normalizer::NONE
est déprécié, lorsque PHP est lié à
ICU ≥ 56.
Introduction de Normalizer::FORM_KC_CF
en tant qu'argument de
Normalizer::normalize() pour la normalisation
NFKC_Casefold
; disponible lorsque PHP est lié à
ICU ≥ 56.
Un nouveau drapeau été ajouté, JSON_THROW_ON_ERROR
,
qui peut être utilisé avec json_decode() ou
json_encode() et provoque la levée de la nouvelle exception
JsonException lors d'une erreur, au lieu de définir
l'état d'erreur global qui est récupéré avec json_last_error()
et json_last_error_msg().
JSON_PARTIAL_OUTPUT_ON_ERROR
prend le pas sur
JSON_THROW_ON_ERROR
.
L'option de configuration --with-libmbfl n'est plus disponible.
La gestion de ODBCRouter
et Birdstep
incluant la directive ini birdstep.max_links
ont été supprimés.
La directive ini opcache.inherited_hack
a été supprimée.
La valeur était ignorée depuis PHP 5.3.0.
Les options de flux ssl min_proto_version
et
max_proto_version
ainsi que des constantes liées pour
d'éventuelles valeurs de protocole TLS ont été ajoutées.
L'extension PCRE a été mise à niveau vers PCRE2, ce qui peut provoquer des changements mineurs de comportement (par exemple, les plages de caractères dans les classes sont maintenant plus strictement interprétées), et augmente la syntaxe d'expression rationnelle existante.
preg_quote() échappe désormais le caractère '#'
.
L'attribut PDO::DBLIB_ATTR_SKIP_EMPTY_ROWSETS
a été ajouté pour
permettre le saut automatique des ensembles de lignes vides.
L'attribut PDO::DBLIB_ATTR_TDS_VERSION
a été ajouté pour
exposer la version de TDS.
Les colonnes DATETIME2 sont désormais traitées comme des colonnes DATETIME.
Les bases de données SQLite3 peuvent désormais être ouvertes en lecture seule en
définissant le nouvel attribut PDO::SQLITE_ATTR_OPEN_FLAGS
à
PDO::SQLITE_OPEN_READONLY
.
session_set_cookie_params() gère désormais en charge la signature suivante :
où$options
est un tableau associatif qui peut contenir chacune
de ces clés "lifetime"
, "path"
,
"domain"
, "secure"
,
"httponly"
et "samesite"
.
Par conséquent, la valeur de retour de session_get_cookie_params()
a maintenant également un élément avec la clé "samesite"
.
En outre, la nouvelle directive ini session.cookie_samesite
a été ajoutée pour définir la valeur par défaut de SameSite pour les cookies.
Par défaut à ""
(chaîne vide), de sorte qu'aucune directive
SameSite n'est définie. La valeur peut être "Lax"
ou
"Strict"
, qui définit la valeur de SameSite.
Construire avec » tidyp est maintenant
géré de façon transparente. Etant donné que tidyp n'offre pas d'API pour obtenir la date de sortie, tidy_get_release() et tidy::getRelease() retourne 'unknown'
dans ce cas.
La valeur de retour de la procédure de rappel de xml_set_external_entity_ref_handler() n'est plus ignorée si l'extension a été construite avec libxml. Auparavant, la valeur de retour était ignorée, et l'analyse ne cessait jamais.
Construire statiquement libzip est déconseillé, mais toujours possible en ajoutant l'option de configuration --without-libzip.
L'option de contexte zlib/level pour compress.zlib wrapper pour faciliter la définition du niveau de compression souhaité a été ajoutée.