Funcionalidades desaprobadas

PHP Core

Parámetro implícitamente anulable

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) {}
debería convertirse en:
<?php
function foo(T1|null $a = null) {}
o
<?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) {}
Debe convertirse en:
<?php
function foo(T1 $a, T2|null $b, T3 $c) {}
o
<?php
function foo(T1 $a, ?T2 $b, T3 $c) {}
porque los parámetros opcionales antes de los parámetros obligatorios están desaprobados.

Elevar cero a la potencia de un número negativo

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().

Uso del guion bajo _ 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 {}

Usar trigger_error() con 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 E_STRICT

Debido a que el nivel de error E_STRICT ha sido eliminado, esta constante ahora está desaprobada.

cURL

La constante CURLOPT_BINARYTRANSFER ahora está desaprobada.

Fecha

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.

DBA

Pasar null o false a dba_key_split() ahora está desaprobado. Esto siempre devolvía false en estos casos.

DOM

La constante DOM_PHP_ERR ahora está desaprobada.

Las siguientes propiedades han sido formalmente desaprobadas:

Hash

Pasar opciones no válidas a las funciones de hash ahora está desaprobado.

Intl

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.

LDAP

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.

MySQLi

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.

PDO_PGSQL

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.

PGSQL

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.

Random

lcg_value() ahora está desaprobada, porque la función está rota de varias maneras. Usar Random\Randomizer::getFloat() en su lugar.

Reflection

Llamar a ReflectionProperty::setValue() con un solo parámetro ahora está desaprobado. Usar ReflectionMethod::createFromMethodName()

Sesión

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.

SOAP

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.

SPL

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.

Estándar

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.

XML

La función xml_set_object() ha sido desaprobada.

Pasar una cadena no-callable a las funciones xml_set_()* ahora está desaprobado.

add a note

User Contributed Notes

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