PHP 8.5.0 Released!

Funcionalidades obsoletas

Núcleo de PHP

Cambios en el controlador de salida del usuario

Intentar generar salida (p. ej., con echo) dentro de un controlador de salida de usuario está obsoleto. La advertencia de obsolescencia omitirá el controlador que genera la salida para garantizar su visibilidad; si existen controladores de salida anidados, se seguirá utilizando el siguiente.

Nombres de conversiones no canónicos

Los nombres de conversiones no canónicos (boolean), (integer), (double), y (binary) han quedado obsoletos, use (bool), (int), (float), y (string) respectivamente.

Finalizar las declaraciones de caso con un punto y coma

Finalizar las sentencias case con un punto y coma en lugar de dos puntos, se considera obsoleto.

El operador de ejecución

El operador de ejecución como un alias para shell_exec() ha quedado obsoleto.

Devolviendo null desde __debugInfo()

Devolver null desde __debugInfo() ha quedado obsoleto. En su lugar, devuelva un array vacío.

Directiva INI report_memleaks

La directiva INI report_memleaks ha quedado obsoleta.

Redeclaración de constantes

La redeclaración de constantes está obsoleta. Tenga en cuenta que esto ya generó una advertencia y seguirá haciéndolo.

Problemas de enlace de cierres

Los siguientes problemas de enlace de cierre, que ya emiten un E_WARNING, ahora están obsoletos:

  • Enlazar una instancia a un cierre estático.
  • Enlazar métodos a objetos que no son instancias de la clase (o subclase) en la que se define el método.
  • Desenlazar $this de un método.
  • Desenlazar $this de un cierre que utiliza $this.
  • Enlazar un cierre al ámbito de una clase interna.
  • Reenlazar el ámbito de un cierre creado a partir de una función o método.

Métodos mágicos __sleep() y __wakeup()

Los métodos mágicos__sleep() y __wakeup() son ligeramente-obsoletos. En su lugar, o al mismo tiempo si se requiere compatibilidad con PHP 7, se deben usar los métodos mágicos __serialize() y __unserialize().

Usando null como índice de un array

El uso de null como índice de un array o al llamar a array_key_exists() está obsoleto. En su lugar, debe utilizarse un string vacío.

Incrementando strings no numéricos

El incremento de strings no numéricos está obsoleto. En su lugar, debe utilizarse la función str_increment().

Directiva INI register_argc_argv

Usar $_SERVER['argc'] y $_SERVER['argv'] a partir del string de consulta para las SAPI que no son de línea de comandos ha quedado obsoleto. Configure register_argc_argv=0 y utilice $_GET o $_SERVER['QUERY_STRING'] para acceder a la información, tras verificar que su uso es seguro.

cURL

La función curl_close() ha quedado obsoleta, ya que los objetos CurlHandle se liberan automáticamente.

La función curl_share_close() ha quedado obsoleta, ya que los objetos CurlShareHandle se liberan automáticamente.

Fecha

Las constantes DATE_RFC7231 y DateTimeInterface::RFC7231 han quedado obsoletas. Esto se debe a que ignoran la zona horaria asociada y siempre utilizan GMT.

FileInfo

La función finfo_close() ha quedado obsoleta. Los objetos finfo se liberan automáticamente.

El parámetro $context de la función finfo_buffer() ha quedado obsoleto ya que se ignora.

GD

La función imagedestroy() ha quedado obsoleta, ya que los objetos GdImage se liberan automáticamente.

Hash

Las constantes MHASH_* han quedado obsoletas.

Intl

La configuración INI intl.error_level ha quedado obsoleta. Se recomienda comprobar los errores manualmente o habilitar las excepciones mediante la configuración INI intl.use_exceptions.

LDAP

Se han marcado como obsoletas ciertas llamadas y constantes de Oracle Instant Client. Lista de llamadas afectadas:

Lista de constantes afectadas:
  • GSLC_SSL_NO_UATH
  • GSLC_SSL_ONEWAY_UATH
  • GSLC_SSL_TWOWAY_UATH

MySQLi

La función alias mysqli_execute() ha quedado obsoleta. Utilice mysqli_stmt_execute() en su lugar.

OpenSSL

El parámetro $key_length de openssl_pkey_derive() ha quedado obsoleto. Esto se debe a que se ignora o trunca la clave, lo que puede suponer una vulnerabilidad de seguridad.

PDO

El esquema DSN "uri:" ha quedado obsoleto debido a problemas de seguridad relacionados con los DSN procedentes de URI remotos.

Las constantes específicas del controlador en la clase PDO han quedado obsoletas. Lista de constantes afectadas y sus reemplazos:

Los métodos específicos del controlador en la clase PDO han quedado obsoletos. Lista de métodos afectados y sus reemplazos:

PDO_PGSQL

Las constantes relacionadas con los estados de las transacciones han quedado obsoletas ya que esta función no está disponible con PDO:

  • PDO::PGSQL_TRANSACTION_IDLE
  • PDO::PGSQL_TRANSACTION_ACTIVE
  • PDO::PGSQL_TRANSACTION_INTRANS
  • PDO::PGSQL_TRANSACTION_INERROR
  • PDO::PGSQL_TRANSACTION_UNKNOWN

Reflection

Los métodos setAccessible() de varios objetos Reflection han quedado obsoletos, ya que ya no tienen efecto.

Llamar a ReflectionClass::getConstant() para constantes que no existen ha quedado obsoleto.

Llamar a ReflectionProperty::getDefaultValue() para propiedades sin valores predeterminados ha quedado obsoleto.

SPL

Anular el registro de todos los autocargadores pasando la función spl_autoload_call() como argumento de devolución de llamada a spl_autoload_unregister() ha quedado obsoleto. En su lugar, si es necesario, se debe iterar sobre el valor devuelto por spl_autoload_functions() y llamar a spl_autoload_unregister() en cada valor.

Los métodos SplObjectStorage::contains(), SplObjectStorage::attach() y SplObjectStorage::detach() han quedado obsoletos y se han sustituido por SplObjectStorage::offsetExists(), SplObjectStorage::offsetSet() y SplObjectStorage::offsetUnset(), respectivamente.

El uso de ArrayObject y ArrayIterator con objetos ha quedado obsoleto.

Estándar

La función alias socket_set_timeout() ha quedado obsoleta. Utilice stream_set_timeout() en su lugar.

Pasar null a readdir(), rewinddir() y closedir() para usar el último directorio abierto ha quedado obsoleto. En su lugar, proporcione explícitamente el último directorio abierto.

Pasar enteros fuera del intervalo [0, 255] a chr() está obsoleto. Esto se debe a que un byte solo puede contener un valor dentro de este intervalo.

Pasar un string que no sea un solo byte a ord() ahora está obsoleto, esto es indicativo de un error.

La variable predefinida localmente $http_response_header está obsoleta. En su lugar, se debe llamar a la función http_get_last_response_headers().

XML

La función xml_parser_free() ha quedado obsoleta, ya que los objetos XMLParser se liberan automáticamente.

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top