PHP 8.4.1 Released!

Fonctionnalités dépréciées

PHP Core

Paramètre implicitement nullable

Un paramètre est implicitement élargi pour accepter null si la valeur par défaut est null.

Le code suivant :

<?php
function foo(T1 $a = null) {}
devrait être converti en :
<?php
function foo(T1|null $a = null) {}
ou
<?php
function foo(?T1 $a = null) {}

Sinon, si une déclaration de paramètre est suivie d'un paramètre obligatoire :

<?php
function foo(T1 $a, T2 $b = null, T3 $c) {}
Il doit être converti en :
<?php
function foo(T1 $a, T2|null $b, T3 $c) {}
ou
<?php
function foo(T1 $a, ?T2 $b, T3 $c) {}
car les paramètres optionnels avant les paramètres obligatoires sont dépréciés.

Elever zéro à la puissance d'un nombre négatif

Elever un nombre à la puissance d'un nombre négatif est équivalent à prendre le réciproque du nombre élevé à l'opposé positif de la puissance. C'est-à-dire, 10-2 est équivalent à 1 / 102. Par conséquent, élever 0 à la puissance d'un nombre négatif correspond à une division par 0, c'est-à-dire que 0-2 est équivalent à 1 / 02, ou 1 / 0. Par conséquent, ce comportement a été déprécié.

Cela affecte l'opérateur d'exponentiation ** et la fonction pow().

Si la sémantique IEEE 754 est désirée, il faut utiliser la nouvelle fonction fpow().

Utilisation de l'underscore _ comme nom de classe

Appeler une classe _ est désormais déprécié :

<?php
class _ {}

Note:

Les classes dont le nom commence par un underscore ne sont pas dépréciées :

<?php
class _MyClass {}

Utiliser trigger_error() avec E_USER_ERROR

Appeler trigger_error() avec error_level égal à E_USER_ERROR est désormais déprécié.

Une telle utilisation devrait être remplacée par soit lancer une exception, soit appeler exit(), selon ce qui est le plus approprié.

La constante E_STRICT

Du fait que le niveau d'erreur E_STRICT a été supprimé, cette constante est désormais dépréciée.

cURL

La constante CURLOPT_BINARYTRANSFER est désormais dépréciée.

Date

La signature DatePeriod::__construct(string $isostr, int $options = 0) est désormais dépréciée. Utiliser DatePeriod::createFromISO8601String() à la place.

Les constantes SUNFUNCS_RET_TIMESTAMP, SUNFUNCS_RET_STRING, et SUNFUNCS_RET_DOUBLE sont désormais dépréciées. Cela suit la dépréciation des fonctions date_sunset() et date_sunrise() dans PHP 8.1.0.

DBA

Passer null ou false à dba_key_split() est désormais déprécié. Cela retournait toujours false dans ces cas.

DOM

La constante DOM_PHP_ERR est désormais dépréciée.

Les propriétés suivantes ont été formellement dépréciées :

  • DOMDocument::$actualEncoding
  • DOMDocument::$config
  • DOMEntity::$actualEncoding
  • DOMEntity::$encoding
  • DOMEntity::$version

Hash

Passer des options invalides aux fonctions de hachage est désormais déprécié.

Intl

Appeler intlcal_set() ou IntlCalendar::set() avec plus de deux arguments est désormais déprécié. Utiliser IntlCalendar::setDate() ou IntlCalendar::setDateTime() à la place.

Appeler intlgregcal_create_instance() ou IntlGregorianCalendar::__construct() avec plus de deux arguments est désormais déprécié. Utiliser intlgregcal_create_instance() ou IntlGregorianCalendar::createFromDateTime() à la place.

LDAP

Appeler ldap_connect() avec plus de deux arguments est désormais déprécié. Utiliser ldap_connect_wallet() à la place.

Appeler ldap_exop() avec plus de quatre arguments est désormais déprécié. Utiliser ldap_exop_sync() à la place.

MySQLi

La fonction mysqli_ping() et la méthode mysqli::ping() sont désormais dépréciées car la fonctionnalité de reconnexion a été supprimée en PHP 8.2.0.

La fonction mysqli_kill() et la méthode mysqli::kill() sont désormais dépréciées. Si cette fonctionnalité est nécessaire, une commande SQL KILL peut être utilisée à la place.

La fonction mysqli_refresh() et la méthode mysqli::refresh() sont désormais dépréciées. Si cette fonctionnalité est nécessaire, une commande SQL FLUSH peut être utilisée à la place. Toutes les constantes MYSQLI_REFRESH_* ont également été dépréciées.

Passer le paramètre mode à mysqli_store_result() explicitement a été déprécié. Comme la constante MYSQLI_STORE_RESULT_COPY_DATA n'était utilisée qu'en conjonction avec cette fonction, elle a également été dépréciée.

PDO_PGSQL

Utiliser des points d'interrogation échappés (??) à l'intérieur des chaînes délimitées par des dollars est désormais déprécié. Car PDO_PGSQL dispose désormais de son propre analyseur SQL avec le support des chaînes délimitées par des dollars, il n'est plus nécessaire d'échapper les points d'interrogation à l'intérieur.

PGSQL

Les 2 arguments de la signature de pg_fetch_result(), pg_field_prtlen(), et pg_field_is_null() sont désormais dépréciés. Utiliser la signature à 3 arguments avec row défini à null à la place.

Random

lcg_value() est désormais dépréciée, car la fonction est cassée de plusieurs manières. Utiliser Random\Randomizer::getFloat() à la place.

Reflection

Appeler ReflectionProperty::setValue() avec un seul paramètre est désormais déprécié. Utiliser plutôt ReflectionMethod::createFromMethodName()

Session

Appeler session_set_save_handler() avec plus de deux arguments est désormais déprécié. Utiliser la signature à deux arguments à la place.

Changer la valeur des paramètres INI session.sid_length et session.sid_bits_per_character est déprécié. Mettre à jour le backend de stockage de session pour accepter des identifiants de session hexadécimaux de 32 caractères et arrêter de changer ces deux paramètres INI à la place.

Changer la valuer des paramètres INI session.use_only_cookies, session.use_trans_sid, session.trans_sid_tags, session.trans_sid_hosts, et session.referer_check est déprécié. La constante SID est également dépréciée.

SOAP

Passer un int à SoapServer::addFunction() est désormais déprécié. Si toutes les fonctions PHP doivent être fournies, aplatir le tableau retourné par get_defined_functions().

La constante SOAP_FUNCTIONS_ALL est désormais dépréciée.

SPL

La méthode SplFixedArray::__wakeup() est désormais dépréciée, car elle implémente SplFixedArray::__serialize() et SplFixedArray::__unserialize() qui doivent être surchargées à la place.

Utiliser la valeur par défaut du paramètre escape pour SplFileObject::setCsvControl(), SplFileObject::fputcsv(), et SplFileObject::fgetcsv() est désormais déprécié. Sa valeur doit être passée explicitement soit positionnellement soit via des arguments nommés. Cela ne s'applique pas à SplFileObject::fputcsv() et SplFileObject::fgetcsv() si SplFileObject::setCsvControl() a été utilisé pour définir une nouvelle valeur par défaut.

Standard

Appeler stream_context_set_option() avec deux arguments est désormais déprécié. Utiliser stream_context_set_options() à la place.

Désérialiser des chaînes en utilisant la balise S en majuscule avec unserialize() est désormais déprécié.

Utiliser la valeur par défaut du paramètre escape pour fputcsv(), fgetcsv(), et str_getcsv() est désormais déprécié. Il doit être passé explicitement soit positionnellement soit via des arguments nommés.

XML

La fonction xml_set_object() a été dépréciée.

Passer une chaîne non-callable aux fonctions xml_set_()* est désormais déprécié.

add a note

User Contributed Notes

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