Documentación offline PHP master

Otros cambios

master Ver versión oficial en línea Licencia CC-BY-3.0Descargado el 2026-08-02

En esta página

Otros cambios#

Cambios en el núcleo#

El tipo iterable ahora es un alias integrado en la compilación para el tipo arrayTraversable. Los mensajes de error relativos a iterable usarán por lo tanto array|Traversable. La reflexión sobre el tipo se preserva para los simples iterable (y ?iterable) para producir una clase ReflectionNamedType con el nombre iterable, sin embargo, el uso de iterable en los tipos de unión se convertirá en array|Traversable.

El formato de fecha de las cookies enviadas ahora es 'D, d M Y H:i:s \G\M\T'; anteriormente, era 'D, d-M-Y H:i:s T'.

Cambios en los módulos SAPI#

CLI#

Los flujos STDOUT, STDERR y STDIN ya no se cierran al destruir los recursos, lo que generalmente ocurre cuando el CLI termina. Sin embargo, aún es posible cerrar explícitamente estos flujos usando fclose y similares.

Funciones modificadas#

Núcleo#

Las funciones strcmp, strcasecmp, strncmp, strncasecmp y substr_compare, utilizando la comparación de cadenas binarias seguras, ya no garantizan devolver strlen($string1) - strlen($string2) cuando las longitudes de las cadenas no son iguales, pero ahora pueden devolver -1 o 1 en su lugar. En lugar de depender de un valor concreto, el valor de retorno debe compararse con 0.

DBA#

dba_open y dba_popen ahora tienen la firma reforzada siguiente:

dba_open(string $path, string $mode, [string $handler], [int $permission], [int $map_size], [int $flags]): resource
```php

El argumento opcional skip de `dba_fetch` ahora está al final de acuerdo con la semántica de PHP. Su firma es ahora:

```php
dba_fetch(string $key, resource $handle, int $skip): string

La firma sobrecargada:

php dba_fetch(string $key, int $skip, resource $handle): stringphp

sigue siendo aceptada, pero se recomienda usar la nueva variante estándar.

Random#

random_bytes y random_int ahora lanzan \Random\RandomException en caso de fallo del CSPRNG. Anteriormente, se lanzaba una simple \Exception en su lugar.

SPL#

El parámetro iterator de iterator_to_array y iterator_count se ha extendido a iterable en lugar de Iterator, lo que permite pasar arrays.

Otros cambios en las extensiones#

Fecha#

Las propiedades de DatePeriod ahora están correctamente declaradas.

Intl#

Las instancias de IntlBreakIterator, IntlRuleBasedBreakIterator, IntlCodePointBreakIterator, IntlPartsIterator, IntlCalendar, Collator, IntlIterator, UConverter, IntlDateFormatter, IntlDatePatternGenerator, MessageFormatter, ResourceBundle, Spoofchecker, IntlTimeZone, y Transliterator ya no son serializables. Anteriormente, podían ser serializadas, pero la deserialización producía objetos inutilizables o fallaba.

MySQLi#

Se ha eliminado el soporte de libmysql y ya no es posible compilar mysqli con libmysql. A partir de ahora, la extensión mysqli solo puede ser compilada con mysqlnd. Todas las funcionalidades de libmysql no disponibles en mysqlnd han sido eliminadas: La propiedad reconnect de mysqli_driver, La directiva INI mysqli.reconnect, La constante MYSQLI_IS_MARIADB está obsoleta

OCI8#

La versión mínima requerida de la biblioteca Oracle Client ahora es 11.2.

PCRE#

Los caracteres NUL (\0) en las cadenas de patrones ahora son soportados.

Sesión#

Intentar modificar el session.cookie_samesite mientras la sesión está activa o después de que la salida haya sido enviada ahora fallará y emitirá una advertencia. El comportamiento ahora está alineado para todos los otros parámetros INI de sesión.

SQLite3#

sqlite3.defensive ahora es INI_USER.

Estándar#

getimagesize ahora informa las dimensiones reales de la imagen, bits y canales de las imágenes AVIF. Anteriormente, las dimensiones se informaban como 0x0, y los bits y canales no se informaban en absoluto.

Tidy#

Las propiedades de la clase tidy ahora están correctamente declaradas. Y las de la clase tidyNode ahora están correctamente declaradas como de solo lectura.

Zip#

La extensión Zip se ha actualizado a la versión 1.20.0, que añade los siguientes métodos: ZipArchive::clearError, ZipArchive::getStreamName, ZipArchive::getStreamIndex

Cambios en la gestión de los archivos INI#

Se ha añadido soporte para prefijos binarios (0b/0B) y octales (0o/0O) a los parámetros INI para números enteros. Los parámetros INI enteros que comienzan con un cero (0) siguen interpretándose como números enteros octales.

El análisis de ciertos valores mal formados ahora desencadena una advertencia, mientras que antes se ignoraba silenciosamente. Por razones de compatibilidad ascendente, la interpretación de estos valores no ha cambiado. Esto afecta a los siguientes parámetros: bcmath.scale, com.code_page, default_socket_timeout, fiber.stack_size, hard_timeout, intl.error_level, ldap.max_links, max_input_nesting_level, max_input_vars, mbstring.regex_retry_limit, mbstring.regex_stack_limit, mysqli.allow_local_infile, mysqli.allow_persistent, mysqli.default_port, mysqli.max_links, mysqli.max_persistent, mysqli.rollback_on_cached_plink, mysqlnd.log_mask, mysqlnd.mempool_default_size, mysqlnd.net_read_buffer_size, mysqlnd.net_read_timeout, oci8.default_prefetch, oci8.max_persistent, oci8.persistent_timeout, oci8.ping_interval, oci8.prefetch_lob_size, oci8.privileged_connect, oci8.statement_cache_size, odbc.allow_persistent, odbc.check_persistent, odbc.max_persistent, odbc.max_links, odbc.defaultbinmode, odbc.default_cursortype, odbc.defaultlrl, opcache.consistency_checks, opcache.file_update_protection, opcache.force_restart_timeout, opcache.interned_strings_buffer, opcache.jit_bisect_limit, opcache.jit_blacklist_root_trace, opcache.jit_blacklist_side_trace, opcache.jit_debug, opcache.jit_hot_func, opcache.jit_hot_loop, opcache.jit_hot_return, opcache.jit_hot_side_exit, opcache.jit_max_exit_counters, opcache.jit_max_loop_unrolls, opcache.jit_max_polymorphic_calls, opcache.jit_max_recursive_calls, opcache.jit_max_recursive_returns, opcache.jit_max_root_traces, opcache.jit_max_side_traces, opcache.log_verbosity_level, opcache.max_file_size, opcache.opt_debug_level, opcache.optimization_level, opcache.revalidate_freq, output_buffering, pcre.backtrack_limit, pcre.recursion_limit, pgsql.max_links, pgsql.max_persistent, post_max_size, realpath_cache_size, realpath_cache_ttl, session.cache_expire, session.cookie_lifetime, session.gc_divisor, session.gc_maxlifetime, session.gc_probability, soap.wsdl_cache_limit, soap.wsdl_cache_ttl, unserialize_max_depth, upload_max_filesize, user_ini.cache_ttl, xmlrpc_error_number, zend.assertions, zlib.output_compression_level