Seulement les nouvelles méthodes devraient être implémentées, si aucun support pour PHP antérieur à la version 7.4 n'est fourni, ou les deux devraient être implémentées.
null
au paramètres non nullable des fonctions nativesLes types scalaires des fonctions natives sont nullable par défaut. Ce comportement est déprécié pour s'aligner sur le comportement des fonctions définies par l'utilisateur, où les types scalaires doivent être marqués comme nullable explicitement.
<?php
var_dump(str_contains("foobar", null));
// Deprecated: Passing null to parameter #2 ($needle) of type string
// is deprecated
?>
La conversion implicite de nombre décimal en entier qui entraîne une perte de précision est maintenant dépréciée. Cela affecte les clés de tableau, les déclarations de type entier en mode coercitif, et les opérateurs travaillant sur des entiers.
<?php
$a = [];
$a[15.5]; // déprécié, car la valeur de la clé perd la composante 0.5
$a[15.0]; // ok, car 15.0 == 15
?>
Appeler une méthode static, ou accéder à une propriété static directement sur un trait est déprécié. Les méthodes et propriétés statiques devraient seulement être accédées sur une classe utilisant le trait.
Retourner une valeur qui n'est pas un tableau depuis __sleep() génère maintenant un diagnostic.
<?php
function &test(): void {}
?>
E_NOTICE
suivant lorsqu'elle est appelée :
Only variable references should be returned by reference
.
false
L'autovivification est le processus de création d'un nouvel tableau
lors de l'ajout à une valeur.
L'autovivification est interdite à partir de valeurs scalaires, false
cependant
était une exception. Ceci est maintenant déprécié.
<?php
$arr = false;
$arr[] = 2; // déprécié
?>
Note:
L'autovivification depuis
null
et les valeurs indéfinies est toujours autorisée:<?php
// Depuis une valeur indéfinie
$arr[] = 'some value';
$arr['doesNotExist'][] = 2;
// Depuis null
$arr = null;
$arr[] = 2;
?>
Passer un argument non chaîne de caractères est déprécié.
Dans le futur, l'argument sera interprété comme une chaîne de caractères au lieu
d'un codepoint ASCII.
Selon le comportement souhaité, l'argument devrait soit être converti en chaîne de caractères ou un appel explicite à
chr() devrait être fait.
Toutes les fonctions ctype_*()
sont affectées.
date_sunrise() et date_sunset() ont été dépréciées pour date_sun_info().
strptime() a été dépréciée. Utiliser date_parse_from_format() à la place (pour une analyse indépendante de la locale), ou IntlDateFormatter::parse() (pour une analyse dépendante de la locale).
strftime() et gmstrftime() ont été dépréciées. Utiliser date() à la place (pour un formatage indépendant de la locale), ou IntlDateFormatter::format() (pour un formatage dépendant de la locale).
Les filtres FILTER_SANITIZE_STRING
et
FILTER_SANITIZE_STRIPPED
sont dépréciés.
La directive filter.default INI est maintenant dépréciée.
Le parametre num_points
de imagepolygon(),
imageopenpolygon() et imagefilledpolygon()
a été déprécié.
Les fonctions mhash(),
mhash_keygen_s2k(),
mhash_count(),
mhash_get_block_size(),
et mhash_get_hash_name() ont été dépréciés.
Utiliser les fonctions hash_*()
à la place.
La constante NIL
a été dépréciée.
Utiliser 0
à la place.
Appeller IntlCalendar::roll() avec un argument
booléen est déprécié.
Utiliser 1
et -1
à la place de
true
et false
respectivement.
Appeller mb_check_encoding() avec aucun argument est déprécié.
La propriété mysqli_driver::$report_mode
a été dépréciée.
C'était dénué de sens et obsolète, utilisez PHP_VERSION_ID
à la place.
Appeller mysqli::get_client_info() ou
mysqli_get_client_info() avec l'argument
mysqli
a été déprécié.
Appeler mysqli_get_client_info() sans argument
pour obtenir l'information de version de la bibliothèque cliente.
La méthode mysqli::init() a été dépréciée. Remplacer les appels à parent::init() par parent::__construct().
La directive INI oci8.old_oci_close_semantics est dépréciée.
odbc_result_all() a été déprécié.
Le mode de récupération PDO::FETCH_SERIALIZE
a été déprécié.
Ne pas passer l'argument de connexion à toutes les fonctions pgsql_*()
a été déprécié.
L'option ssl_method
de
SoapClient::__construct() a été dépréciée
en faveur des options de contexte de flux SSL.
Appeller key(), current(), next(), prev(), reset(), ou end() sur les objets est déprécié. Soit convertir l'objet en tableau avec get_mangled_object_vars() en premier lieu, ou utiliser les méthodes d'une classe qui implémente Iterator, tel que ArrayIterator, à la place.
La directive INI auto_detect_line_endings
est dépréciée.
Si nécessaire, gérer manuellement les sauts de ligne "\r"
à la place.
Les constantes FILE_BINARY
et
FILE_TEXT
ont été dépréciées.
Elles n'ont jamais eu d'effet.