PHP 8.4.0 RC4 available for testing

Fonctionnalités dépréciées

PHP Core

Implémenter Serializable sans __serialize() et __unserialize()

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.

Passer null au paramètres non nullable des fonctions natives

Les 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
?>

Conversions implicites incompatibles de nombre décimal en entier

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
?>

Appeller un element static sur un trait

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 un non tableau depuis __sleep()

Retourner une valeur qui n'est pas un tableau depuis __sleep() génère maintenant un diagnostic.

Retourner une référence depuis une fonction void

<?php
function &test(): void {}
?>
Une telle fonction est contradictoire, et émet déjà le E_NOTICE suivant lorsqu'elle est appelée : Only variable references should be returned by reference.

L'autovivification depuis 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;
?>

ctype

Vérifier des arguments non chaîne de caractères

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

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).

Filter

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.

GD

Le parametre num_points de imagepolygon(), imageopenpolygon() et imagefilledpolygon() a été déprécié.

Hash

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.

IMAP

La constante NIL a été dépréciée. Utiliser 0 à la place.

Intl

Appeller IntlCalendar::roll() avec un argument booléen est déprécié. Utiliser 1 et -1 à la place de true et false respectivement.

Chaine de caractères multibytes

Appeller mb_check_encoding() avec aucun argument est déprécié.

MySQLi

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().

OCI8

La directive INI oci8.old_oci_close_semantics est dépréciée.

ODBC

odbc_result_all() a été déprécié.

PDO

Le mode de récupération PDO::FETCH_SERIALIZE a été déprécié.

PgSQL

Ne pas passer l'argument de connexion à toutes les fonctions pgsql_*() a été déprécié.

SOAP

L'option ssl_method de SoapClient::__construct() a été dépréciée en faveur des options de contexte de flux SSL.

Standard

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.

add a note

User Contributed Notes

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