setcookie() y setrawcookie() ahora también aceptan la siguiente firma:
donde$options
es un array asociativo que puede tener cualquiera de las siguientes claves "expires"
, "path"
,
"domain"
, "secure"
,
"httponly"
y "samesite"
.
Se han añadido las siguientes directivas INI para personalizar
el registro, si error_log
está definido en syslog
:
all
,
no-ctrl
y ascii
.
A partir de PHP 7.3.8, raw
también está disponible,
restaurando el comportamiento de syslog correspondiente a versiones
anteriores de PHP. Este filtro también afectará a las llamadas a
syslog().
El GC cíclico ha sido mejorado, lo que mejora significativamente el rendimiento.
var_export() ahora exporta objetos
stdClass como un array modificado en objeto
((object) array( ... )
), en lugar de usar el método
inexistente stdClass::__setState().
debug_zval_dump() ha sido modificado para mostrar arrays y objetos recursivos de la misma manera que var_dump(). Ahora, no los muestra dos veces.
array_push() y array_unshift() ahora pueden ser llamados con un solo argumento, lo cual es particularmente práctico con el operador de descomposición.
Las constantes no utilizadas PHPDBG_FILE
,
PHPDBG_METHOD
, PHPDBG_LINENO
y
PHPDBG_FUNC
han sido eliminadas.
La función getallheaders() ahora también está disponible.
Ahora se requiere libcurl ≥ 7.15.5.
FILTER_VALIDATE_FLOAT
ahora soporta la opción
thousand
, que define el conjunto de caracteres de
separación para los miles. El valor por defecto es ("',."
)
retrocompatible con versiones anteriores de PHP.
FILTER_SANITIZE_ADD_SLASHES
ha sido añadido como un alias
del filtro magic_quotes
(FILTER_SANITIZE_MAGIC_QUOTES
).
El filtro magic_quotes
está sujeto a ser eliminado
en futuras versiones de PHP.
El modo de transferencia por defecto ha sido cambiado a binary
.
Normalizer::NONE
está obsoleto cuando PHP está enlazado a
ICU ≥ 56.
Introducción de Normalizer::FORM_KC_CF
como argumento de
Normalizer::normalize() para la normalización
NFKC_Casefold
; disponible cuando PHP está enlazado a
ICU ≥ 56.
Se ha añadido una nueva bandera, JSON_THROW_ON_ERROR
,
que puede ser utilizada con json_decode() o
json_encode() y provoca que se lance la nueva excepción
JsonException en caso de error, en lugar de establecer
el estado de error global que se recupera con json_last_error()
y json_last_error_msg().
JSON_PARTIAL_OUTPUT_ON_ERROR
tiene prioridad sobre
JSON_THROW_ON_ERROR
.
La opción de configuración --with-libmbfl ya no está disponible.
La gestión de ODBCRouter
y Birdstep
incluyendo la directiva ini birdstep.max_links
han sido eliminadas.
La directiva ini opcache.inherited_hack
ha sido eliminada.
El valor era ignorado desde PHP 5.3.0.
Se han añadido las opciones de flujo ssl min_proto_version
y
max_proto_version
así como constantes enlazadas para
varios valores de protocolo TLS.
La extensión PCRE ha sido actualizada a PCRE2, lo que puede provocar cambios menores en el comportamiento (por ejemplo, las clases de caracteres en las clases son ahora estrictamente interpretadas), y amplía la sintaxis de expresión regular existente.
preg_quote() ahora escapa el carácter '#'
.
El atributo PDO::DBLIB_ATTR_SKIP_EMPTY_ROWSETS
ha sido añadido para
permitir el salto automático de conjuntos de filas vacíos.
El atributo PDO::DBLIB_ATTR_TDS_VERSION
ha sido añadido para
exponer la versión de TDS.
Las columnas DATETIME2 ahora se tratan como columnas DATETIME.
Las bases de datos SQLite3 ahora pueden ser abiertas en modo solo lectura
definiendo el nuevo atributo PDO::SQLITE_ATTR_OPEN_FLAGS
a
PDO::SQLITE_OPEN_READONLY
.
session_set_cookie_params() ahora soporta la siguiente firma:
donde$options
es un array asociativo que puede contener cualquiera de estas claves "lifetime"
, "path"
,
"domain"
, "secure"
,
"httponly"
y "samesite"
.
En consecuencia, el valor de retorno de session_get_cookie_params()
ahora también tiene un elemento con la clave "samesite"
.
Además, se ha añadido la nueva directiva ini session.cookie_samesite
para definir el valor por defecto de SameSite para las cookies.
Por defecto a ""
(cadena vacía), de modo que no se define ninguna directiva SameSite. El valor puede ser "Lax"
o
"Strict"
, que define el valor de SameSite.
La construcción con » tidyp ahora es
transparente. Dado que tidyp no proporciona una API para obtener la fecha de construcción, tidy_get_release() y tidy::getRelease() devuelven 'unknown'
en este caso.
El valor de retorno de la función de devolución de llamada de xml_set_external_entity_ref_handler() ya no se ignora si la extensión se construyó con libxml. Anteriormente, el valor de retorno era ignorado, y el análisis nunca cesaba.
La construcción estática de libzip está desaconsejada, pero sigue siendo posible añadiendo la opción de configuración --without-libzip.
Se ha añadido la opción de contexto zlib/level para el wrapper de compresión zlib para facilitar la definición del nivel de compresión deseado.