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.