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.