PHP 8.4.0 RC4 available for testing

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) {}
devrat ê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