Las operaciones ternarias anidadas deben utilizar explícitamente paréntesis para dictar el orden de las operaciones. Anteriormente, cuando se usaba sin paréntesis, la asociatividad izquierda no resultaría en el comportamiento esperado en la mayoría de los casos.
<?php
1 ? 2 : 3 ? 4 : 5; // obsoleto
(1 ? 2 : 3) ? 4 : 5; // ok
1 ? 2 : (3 ? 4 : 5); // ok
?>
La sintaxis de acceso de desplazamiento en array y string con llaves es obsoleto. Use $var[$idx] en vez de $var{$idx}.
La llamada (real) es obsoleta, use (float) en su lugar.
La función is_real() es también obsoleta, use is_float() en su lugar.
Desencadenando $this de un cierre no estático que use $this es obsoleto.
Usar parent dentro de una clase sin un padre es obsoleto, y lanzará un error de compilación en el futuro. Actualmente sólo se generará un error si/cuando el padre es accedido en tiempo de ejecución.
La directiva ini allow_url_include es obsoleta. Habilitar esta generará un aviso de depreciación en el arranque.
Pasar caracteres inválidos a base_convert(), bindec(), octdec() y hexdec() generará ahora un aviso de depreciación. El resultado se seguirá calculando como si los caracteres inválidos no existieran. Liderando y siguiendo el espacio blanco, así como prefijos de tipo 0x (dependiendo de la base) siguen estando permitidos.
Usar array_key_exists() en objetos es obsoleto. En lugar de eso, debe usar isset() o property_exists().
Las funciones get_magic_quotes_gpc() y get_magic_quotes_runtime()
son obsoletas. Estas siempre devolverán FALSE
.
La función hebrevc() es obsoleta. Esta puede ser reemplazada con nl2br(hebrev($str)) o, preferiblemente, el uso del soporte RTL de Unicode.
La función convert_cyr_string() es obsoleta. Esta puede ser reemplazada con mb_convert_string(), iconv() o UConverter.
La función money_format() es obsoleta. Esta puede ser reemplazada con la funcionalidad intl NumberFormatter.
La función ezmlm_hash() es obsoleta.
La función restore_include_path() es obsoleta. Esta puede ser reemplazada con ini_restore('include_path').
Pasar parámetros a implode() en orden inverso es obsoleto, use implode($glue, $parts) en vez de implode($parts, $glue).
La importación de bibliotecas de tipos con registro constante que no distingue entre mayúsculas y y minúsculas es obsoleto.
FILTER_SANITIZE_MAGIC_QUOTES
es obsoleto,
use FILTER_SANITIZE_ADD_SLASHES
en su lugar.
Pasar un patrón sin string a mb_ereg_replace() es obsoleto. Actualmente, los patrones sin string se interpretan como puntos de código ASCII. En PHP 8, el patrón será interpretado como un string en su lugar.
Pasar la codificación como tercer parámetro a mb_strrpos() es obsoleto. En su lugar, pasar un offset de 0, y codificar como cuarto parámetro.
ldap_control_paged_result_response() y ldap_control_paged_result() son obsoletas. Los controles de paginación pueden ser enviados junto con ldap_search() en su lugar.
Llamar a ReflectionType::__toString() ahora generará un aviso de depreciación. Este método ha sido desaprobado en favor de ReflectionNamedType::getName() en la documentación desde PHP 7.1, pero no lanzó un aviso de depreciación por razones técnicas.
Los métodos export() en todas las clases Reflection están obsoletos. Contruir un objeto Reflection y convertir este a string en su lugar:
<?php
// ReflectionClass::export(Foo::class, false) is:
echo new ReflectionClass(Foo::class), "\n";
// $str = ReflectionClass::export(Foo::class, true) is:
$str = (string) new ReflectionClass(Foo::class);
?>
Las flags AI_IDN_ALLOW_UNASSIGNED
y
AI_IDN_USE_STD3_ASCII_RULES
para
socket_addrinfo_lookup() sob obsoletas,
debido a una depreciación ascendente en el glibc.