Un parámetro se amplía implícitamente para aceptar null
si el valor por defecto es null
.
El siguiente código:
<?php
function foo(T1 $a = null) {}
<?php
function foo(T1|null $a = null) {}
<?php
function foo(?T1 $a = null) {}
De lo contrario, si una declaración de parámetro es seguida por un parámetro obligatorio:
<?php
function foo(T1 $a, T2 $b = null, T3 $c) {}
<?php
function foo(T1 $a, T2|null $b, T3 $c) {}
<?php
function foo(T1 $a, ?T2 $b, T3 $c) {}
Elevar un número a la potencia de un número negativo es equivalente a tomar
el recíproco del número elevado al opuesto positivo de la potencia.
Es decir, 10-2
es equivalente a
1 / 102
.
Por lo tanto, elevar 0
a la potencia de un número negativo
corresponde a una división por 0
, es decir, que
0-2
es equivalente a
1 / 02
, o
1 / 0
. Por lo tanto, este comportamiento ha sido desaprobado.
Esto afecta al operador de exponenciación **
y a la función pow().
Si se desea la semántica IEEE 754, se debe usar la nueva función fpow().
_
como nombre de clase
Llamar a una clase _
ahora está desaprobado:
<?php
class _ {}
Nota:
Las clases cuyo nombre comienza con un guion bajo no están desaprobadas:
<?php
class _MyClass {}
E_USER_ERROR
Llamar a trigger_error() con
error_level
igual a
E_USER_ERROR
ahora está desaprobado.
Tal uso debería ser reemplazado por lanzar una excepción, o llamar a exit(), según lo que sea más apropiado.
La constante CURLOPT_BINARYTRANSFER
ahora está desaprobada.
La firma DatePeriod::__construct(string $isostr, int $options = 0)
ahora está desaprobada.
Usar DatePeriod::createFromISO8601String() en su lugar.
Las constantes SUNFUNCS_RET_TIMESTAMP
,
SUNFUNCS_RET_STRING
,
y SUNFUNCS_RET_DOUBLE
ahora están desaprobadas.
Esto sigue a la desaprobación de las funciones date_sunset() y
date_sunrise() en PHP 8.1.0.
Pasar null
o false
a dba_key_split() ahora está
desaprobado.
Esto siempre devolvía false
en estos casos.
La constante DOM_PHP_ERR
ahora está desaprobada.
Las siguientes propiedades han sido formalmente desaprobadas:
Pasar opciones no válidas a las funciones de hash ahora está desaprobado.
Llamar a intlcal_set() o IntlCalendar::set() con más de dos argumentos ahora está desaprobado. Usar IntlCalendar::setDate() o IntlCalendar::setDateTime() en su lugar.
Llamar a intlgregcal_create_instance() o IntlGregorianCalendar::__construct() con más de dos argumentos ahora está desaprobado. Usar intlgregcal_create_instance() o IntlGregorianCalendar::createFromDateTime() en su lugar.
Llamar a ldap_connect() con más de dos argumentos ahora está desaprobado. Usar ldap_connect_wallet() en su lugar.
Llamar a ldap_exop() con más de cuatro argumentos ahora está desaprobado. Usar ldap_exop_sync() en su lugar.
La función mysqli_ping() y el método mysqli::ping() ahora están desaprobados porque la funcionalidad de reconexión fue eliminada en PHP 8.2.0.
La función mysqli_kill() y
el método mysqli::kill()
ahora están desaprobados.
Si esta funcionalidad es necesaria, se puede usar un comando SQL KILL
en su lugar.
La función mysqli_refresh() y
el método mysqli::refresh()
ahora están desaprobados.
Si esta funcionalidad es necesaria, se puede usar un comando SQL FLUSH
en su lugar.
Todas las constantes MYSQLI_REFRESH_*
también han sido desaprobadas.
Pasar el parámetro mode
a
mysqli_store_result() explícitamente ha sido desaprobado.
Como la constante MYSQLI_STORE_RESULT_COPY_DATA
solo se usaba
en conjunción con esta función, también ha sido desaprobada.
Usar puntos de interrogación escapados (??
) dentro
de cadenas delimitadas por dólares ahora está desaprobado.
Como PDO_PGSQL ahora tiene su propio analizador SQL con soporte para cadenas delimitadas por dólares, ya no es necesario escapar los puntos de interrogación dentro de ellas.
Los 2 argumentos de la firma de pg_fetch_result(),
pg_field_prtlen(), y
pg_field_is_null() ahora están desaprobados.
Usar la firma de 3 argumentos con row
definido a
null
en su lugar.
lcg_value() ahora está desaprobada, porque la función está rota de varias maneras. Usar Random\Randomizer::getFloat() en su lugar.
Llamar a ReflectionProperty::setValue() con un solo parámetro ahora está desaprobado. Usar ReflectionMethod::createFromMethodName()
Llamar a session_set_save_handler() con más de dos argumentos ahora está desaprobado. Usar la firma de dos argumentos en su lugar.
Cambiar el valor de los parámetros INI
session.sid_length
y
session.sid_bits_per_character
está desaprobado.
Actualizar el backend de almacenamiento de sesión para aceptar identificadores de sesión hexadecimales de 32 caracteres
y dejar de cambiar estos dos parámetros INI en su lugar.
Cambiar el valor de los parámetros INI
session.use_only_cookies
,
session.use_trans_sid
,
session.trans_sid_tags
,
session.trans_sid_hosts
, y
session.referer_check
está desaprobado.
La constante SID
también está desaprobada.
Pasar un int a SoapServer::addFunction() ahora está desaprobado. Si todas las funciones PHP deben ser proporcionadas, aplanar el array devuelto por get_defined_functions().
La constante SOAP_FUNCTIONS_ALL
ahora está desaprobada.
El método SplFixedArray::__wakeup() ahora está desaprobado, porque implementa SplFixedArray::__serialize() y SplFixedArray::__unserialize() que deben ser sobrescritos en su lugar.
Usar el valor por defecto del parámetro escape
para
SplFileObject::setCsvControl(),
SplFileObject::fputcsv(), y
SplFileObject::fgetcsv() ahora está desaprobado.
Su valor debe pasarse explícitamente ya sea posicionalmente o a través de argumentos nombrados.
Esto no se aplica a SplFileObject::fputcsv()
y SplFileObject::fgetcsv() si
SplFileObject::setCsvControl() ha sido usado para definir un
nuevo valor por defecto.
Llamar a stream_context_set_option() con dos argumentos ahora está desaprobado. Usar stream_context_set_options() en su lugar.
Deserializar cadenas usando la etiqueta S
en mayúscula
con unserialize() ahora está desaprobado.
Usar el valor por defecto del parámetro escape
para
fputcsv(),
fgetcsv(), y
str_getcsv() ahora está desaprobado.
Debe pasarse explícitamente ya sea posicionalmente o a través de argumentos nombrados.
La función xml_set_object() ha sido desaprobada.
Pasar una cadena no-callable a las funciones xml_set_()* ahora está desaprobado.