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.
null
a parámetros no nullables de funciones nativasLos 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
?>
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 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 valor que no sea un array desde __sleep() ahora genera un diagnóstico.
<?php
function &test(): void {}
?>
E_NOTICE
siguiente cuando se llama:
Only variable references should be returned by reference
.
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
?>
Nota:
La autovivificación desde
null
y valores indefinidos sigue estando permitida:<?php
// Desde un valor indefinido
$arr[] = 'some value';
$arr['doesNotExist'][] = 2;
// Desde null
$arr = null;
$arr[] = 2;
?>
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.
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).
Los filtros FILTER_SANITIZE_STRING
y
FILTER_SANITIZE_STRIPPED
están depreciados.
La directiva INI filter.default ahora está depreciada.
El parámetro num_points
de imagepolygon(),
imageopenpolygon() y imagefilledpolygon()
ha sido depreciado.
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.
La constante NIL
ha sido depreciada.
Usar 0
en su lugar.
Llamar a IntlCalendar::roll() con un argumento
bool está depreciado.
Usar 1
y -1
en lugar de
true
y false
respectivamente.
Llamar a mb_check_encoding() sin ningún argumento está depreciado.
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().
La directiva INI oci8.old_oci_close_semantics está depreciada.
odbc_result_all() ha sido depreciada.
El modo de recuperación PDO::FETCH_SERIALIZE
ha sido depreciado.
No pasar el argumento de conexión a todas las funciones pgsql_*()
ha sido depreciado.
La opción ssl_method
de
SoapClient::__construct() ha sido depreciada
a favor de las opciones de contexto de flujo SSL.
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.