Fonctionnalités devenues obsolètes en PHP 7.2.x
Des chaînes non délimitées
Des chaînes qui sont des constantes globales inexistantes sont considérées
comme des chaînes d’elles-mêmes. Ce comportement émettait une
E_NOTICE
, mais maintenant émet une
E_WARNING
. Dans la prochaine version majeure
de PHP, une exception sera levée à la place.
Les fonctions png2wbmp() et jpeg2wbmp()
de l'extension GD ont maintenant été désapprouvées et seront supprimées dans
la prochaine version majeure de PHP.
Variante INTL_IDNA_VARIANT_2003
L'extension Intl a désapprouvé la variante
INTL_IDNA_VARIANT_2003
,
qui est actuellement utilisée par idn_to_ascii() et
idn_to_utf8(). La valeur par défaut sera changée dans
PHP 7.4 par INTL_IDNA_VARIANT_UTS46
, et la valeur
INTL_IDNA_VARIANT_2003
sera supprimée dans la
prochaine version majeure de PHP.
La méthode __autoload() a été déconseillée car inférieure à
spl_autoload_register() (car elle n'est pas capable
d'accepter plusieurs chargeurs automatiques), et les deux styles de
chargement automatique ne sont pas interopérables.
Directive de configuration track_errors
et la variable $php_errormsg
Lorsque la directive de configuration track_errors
est activée, une variable $php_errormsg
est créée
dans la portée locale lorsqu'une erreur non fatale se produit.
Étant donné que le meilleur moyen de récupérer ces informations d’erreur
est d'utiliser error_get_last(), cette fonctionnalité
a été désapprouvée.
Étant donnés les problèmes de sécurité de cette fonction (qui est un
wrapper mince autour de eval()) cette ancienne fonction
est maintenant obsolète. Le meilleur moyen de créer des fermetures est en
définissant des fonctions anonymes.
Directive de configuration mbstring.func_overload
Étant donnés les problèmes d’interopérabilité des fonctions basées sur
une chaîne utilisées dans les environnements lorsque ce paramètre est
activé, il est maintenant obsolète.
(unset)
cast
Casting de n’importe quelle expression à ce type entraînera toujours un
résultat null
, et ce type de cast superflu est maintenant obsolète.
Sans second argument à la fonction parse_str(), les
paramètres de la requête sont alloués dans des variables locales. Étant données les
implications de ce fonctionnement sur la sécurité, l'utilisation de
parse_str() sans un second argument est maintenant obsolète. La
fonction doit toujours être utilisée avec deux arguments, car le deuxième argument
entraîne l'analyse de la chaîne de requête dans un tableau.
Cette fonction génère un nombre aléatoire basé sur une plage qui est
calculée par une taille non exposée, spécifique à la plateforme membre.
Pour cette raison, la fonction est maintenant obsolète.
Le meilleur moyen de générer un nombre aléatoire est l'utilisation de
l’extension GMP avec les fonctions gmp_random_bits() et
gmp_random_range().
Cette fonction est beaucoup plus lente à l’itération qu’un classique
foreach
et entraîne des problèmes de mise en
œuvre de certains changements de langue. Elle a donc été désapprouvée.
assert() avec un argument texte
Lors de l'utilisation d'assert() avec un argument texte,
il est nécessaire que le texte soit évalué par la fonction
eval(). Compte tenu du potentiel pour l’exécution de code
à distance, avec un argument de chaîne à l’aide de
assert() a maintenant été désapprouvée en faveur de
l’utilisation des expressions booléennes.
$errcontext
argument de gestionnaires d’erreurs
L’argument $errcontext
contient toutes les variables
locales de l’emplacement de l’erreur. Compte tenu de son utilisation rare
et les problèmes qu'elle provoque avec des optimisations internes, il est
maintenant devenu obsolète. Au lieu de cela, un débogueur doit être utilisé pour récupérer des
informations sur les variables locales à l’emplacement de l’erreur.