Documentación offline PHP master

Funcionalidades obsoletas

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

En esta página

Funcionalidades obsoletas#

Núcleo de PHP#

Implementar Serializable sin __serialize y __unserialize#

Solo los nuevos métodos deben ser implementados, si no se proporciona soporte para PHP anterior a la versión 7.4, o ambos deben ser implementados.

Pasar null a parámetros no nullables de funciones nativas#

Los tipos escalares de las funciones nativas son nullables por defecto. Este comportamiento está depreciado para alinearse con el comportamiento de las funciones definidas por el usuario, donde los tipos escalares deben ser marcados como nullables explícitamente.

<?php
var_dump(str_contains("foobar", null));
// Deprecated: Passing null to parameter #2 ($needle) of type string
//             is deprecated
?>

Conversiones implícitas incompatibles de float a int#

La conversión implícita de float a int que resulta en una pérdida de precisión ahora está depreciada. Esto afecta a las claves de array, las declaraciones de tipo int en modo coercitivo, y los operadores que trabajan con ints.

<?php
$a = [];
$a[15.5]; // depreciado, ya que el valor de la clave pierde el componente 0.5
$a[15.0]; // ok, ya que 15.0 == 15
?>

Llamar a un elemento static en un trait#

Llamar a un método static, o acceder a una propiedad static directamente en un trait está depreciado. Los métodos y propiedades estáticas solo deben ser accedidos en una clase que use el trait.

Devolver un no array desde __sleep#

Devolver un valor que no sea un array desde __sleep() ahora genera un diagnóstico.

Devolver una referencia desde una función void#

<?php
function &test(): void {}
?>

Tal función es contradictoria, y ya emite el E_NOTICE siguiente cuando se llama: Only variable references should be returned by reference.

La autovivificación desde false#

La autovivificación es el proceso de crear un nuevo array al añadir a un valor. La autovivificación está prohibida desde valores escalares, false sin embargo era una excepción. Esto ahora está depreciado.

<?php
$arr = false;
$arr[] = 2;   // depreciado
?>

[!NOTE] La autovivificación desde null y valores indefinidos sigue estando permitida:

```

```

ctype#

Verificar argumentos no cadena de caracteres#

Pasar un argumento no cadena de caracteres está depreciado. En el futuro, el argumento será interpretado como una cadena de caracteres en lugar de un código ASCII. Según el comportamiento deseado, el argumento debe ser convertido a string o se debe hacer una llamada explícita a chr. Todas las funciones ctype_*() están afectadas.

Fecha#

date_sunrise y date_sunset han sido depreciadas a favor de date_sun_info.

strptime ha sido depreciada. Usar date_parse_from_format en su lugar (para un análisis independiente de la configuración regional), o IntlDateFormatter::parse (para un análisis dependiente de la configuración regional).

strftime y gmstrftime han sido depreciadas. Usar date en su lugar (para un formateo independiente de la configuración regional), o IntlDateFormatter::format (para un formateo dependiente de la configuración regional).

Filtro#

Los filtros FILTER_SANITIZE_STRING y FILTER_SANITIZE_STRIPPED están depreciados.

La directiva INI filter.default ahora está depreciada.

GD#

El parámetro num_points de imagepolygon, imageopenpolygon y imagefilledpolygon ha sido depreciado.

Hash#

Las funciones mhash, mhash_keygen_s2k, mhash_count, mhash_get_block_size, y mhash_get_hash_name han sido depreciadas. Usar las funciones hash_*() en su lugar.

IMAP#

La constante NIL ha sido depreciada. Usar 0 en su lugar.

Intl#

Llamar a IntlCalendar::roll con un argumento bool está depreciado. Usar 1 y -1 en lugar de true y false respectivamente.

Cadena de caracteres multibyte#

Llamar a mb_check_encoding sin ningún argumento está depreciado.

MySQLi#

La propiedad mysqli_driver::\$report_mode ha sido depreciada. Era redundante y obsoleta, usar PHP_VERSION_ID en su lugar.

Llamar a mysqli::get_client_info o mysqli_get_client_info con el argumento mysqli ha sido depreciado. Llamar a mysqli_get_client_info sin argumentos para obtener la información de versión de la biblioteca cliente.

El método mysqli::init ha sido depreciado. Reemplazar las llamadas a parent::init por parent::__construct.

OCI8#

La directiva INI oci8.old_oci_close_semantics está depreciada.

ODBC#

odbc_result_all ha sido depreciada.

PDO#

El modo de recuperación PDO::FETCH_SERIALIZE ha sido depreciado.

PgSQL#

No pasar el argumento de conexión a todas las funciones pgsql_*() ha sido depreciado.

SOAP#

La opción ssl_method de SoapClient::__construct ha sido depreciada a favor de las opciones de contexto de flujo SSL.

Estándar#

Llamar a key, current, next, prev, reset, o end en objects está depreciado. Convertir el object en array con get_mangled_object_vars primero, o usar los métodos de una clase que implemente Iterator, como ArrayIterator, en su lugar.

La directiva INI auto_detect_line_endings está depreciada. Si es necesario, manejar manualmente los saltos de línea "\r" en su lugar.

Las constantes FILE_BINARY y FILE_TEXT han sido depreciadas. Nunca tuvieron efecto.