Funcionalidades obsoletas
En esta página
- Funcionalidades obsoletas#
- Núcleo de PHP#
- Parámetro implícitamente anulable#
- Elevar cero a la potencia de un número negativo#
- Uso del guion bajo _ como nombre de clase#
- Usar trigger_error con E_USER_ERROR#
- La constante E_STRICT#
- cURL#
- Fecha#
- DBA#
- DOM#
- Hash#
- Intl#
- LDAP#
- MySQLi#
- PDO_PGSQL#
- PGSQL#
- Random#
- Reflection#
- Sesión#
- SOAP#
- SPL#
- Estándar#
- XML#
Funcionalidades obsoletas#
Núcleo de PHP#
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 _ {}
[!NOTE] 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: DOMDocument::\$actualEncoding, DOMDocument::\$config, DOMEntity::\$actualEncoding, DOMEntity::\$encoding, DOMEntity::\$version
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 IntlGregorianCalendar::createFromDate 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.