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) {}
<?php
function foo(T1|null $a = null) {}
<?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) {}
<?php
function foo(T1 $a, T2|null $b, T3 $c) {}
<?php
function foo(T1 $a, ?T2 $b, T3 $c) {}
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().
_
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 {}
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 CURLOPT_BINARYTRANSFER
est désormais dépréciée.
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.
Passer null
ou false
à dba_key_split() est désormais
déprécié.
Cela retournait toujours false
dans ces cas.
La constante DOM_PHP_ERR
est désormais dépréciée.
Les propriétés suivantes ont été formellement dépréciées :
Passer des options invalides aux fonctions de hachage est désormais déprécié.
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.
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.
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.
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.
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.
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.
Appeler ReflectionProperty::setValue() avec un seul paramètre est désormais déprécié. Utiliser plutôt ReflectionMethod::createFromMethodName()
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.
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.
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.
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.
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é.