Otros cambios
En esta página
Otros cambios#
Núcleo de PHP#
Set(raw)cookie acepta el argumento \$options#
setcookie y setrawcookie ahora también aceptan la siguiente firma:
setcookie(string $name, [string $value], [array $options]): bool
```php
donde `$options` es un array asociativo que puede tener cualquiera de las siguientes claves `"expires"`, `"path"`, `"domain"`, `"secure"`, `"httponly"` y `"samesite"`.
### Nuevas directivas INI Syslog
Se han añadido las siguientes directivas INI para personalizar el registro, si [error_log](#ini.error-log) está definido en `syslog`:
[syslog.facility](#ini.syslog.facility)
Especifica qué tipo de programa está registrando el mensaje.
[syslog.filter](#ini.syslog.filter)
Especifica el tipo de filtro para filtrar los mensajes registrados, con los tipos de filtros soportados - `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`.
[syslog.ident](#ini.syslog.ident)
Especifica la cadena de identificación que precederá a cada mensaje.
### Recolector de basura
El [GC cíclico](#features.gc.collecting-cycles) ha sido mejorado, lo que mejora significativamente el rendimiento.
### Diversos
`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.
## Depurador PHP interactivo
Las constantes no utilizadas `PHPDBG_FILE`, `PHPDBG_METHOD`, `PHPDBG_LINENO` y `PHPDBG_FUNC` han sido eliminadas.
## Gestor de procesos FastCGI
La función `getallheaders` ahora también está disponible.
## Biblioteca URL cliente
Ahora se requiere libcurl ≥ 7.15.5.
## Filtrado de datos
`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.
## FTP
El modo de transferencia por defecto ha sido cambiado a `binary`.
## Funciones de internacionalización
`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.
## Notación de objetos JavaScript
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`.
## Cadena multibyte
La opción de configuración `--with-libmbfl` ya no está disponible.
## ODBC (Unificado)
La gestión de `ODBCRouter` y `Birdstep` incluyendo la directiva ini `birdstep.max_links` han sido eliminadas.
## OPcache
La directiva ini `opcache.inherited_hack` ha sido eliminada. El valor era ignorado desde PHP 5.3.0.
## OpenSSL
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.
## Expresiones regulares (Perl-Compatible)
La [extensión PCRE](#book.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 `'#'`.
## Funciones Microsoft SQL Server y Sybase (PDO_DBLIB)
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.
## Funciones SQLite (PDO_SQLITE)
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`.
## Manejo de sesiones
`session_set_cookie_params` ahora soporta la siguiente firma:
```php
session_set_cookie_params(array $options): bool
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.
Tidy#
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.
Analizador XML#
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.
Zip#
La construcción estática de libzip está desaconsejada, pero sigue siendo posible añadiendo la opción de configuración --without-libzip.
Compresión Zlib#
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.