Autres changements
Notices et avertisements sur opérations arithmétiques avec chaînes invalides
Des nouvelles erreurs E_WARNING
et E_NOTICE
ont été introduite quand des chaîne de caractères invalides sont contraint en utilisant
des opérateurs s'attendant à des nombres (+ -
* / **
% << >>
| & ^) ou leurs
assignements équivalent. Une E_NOTICE
est émise quand la
chaîne de caractères commence avec une valeur numérique mais contient des caractères non
numériques de fin, et une E_WARNING
est émise quand la
chaîne de caractères ne contient pas une valeur numérique.
<?php
'1b' + 'something';
L'exemple ci-dessus va afficher :
Notice: A non well formed numeric value encountered in %s on line %d Warning: A non-numeric value encountered in %s on line %d
Avertir en cas de débordement de la séquence d'échappement octale
Auparavant, les séquences d'échappement de chaîne octale de 3 octets débordaient
silencieusement. Désormais, ils déborderont toujours, mais une
E_WARNING
sera émise.
<?php
var_dump("\500");
L'exemple ci-dessus va afficher :
Warning: Octal escape sequence overflow \500 is greater than \377 in %s on line %d string(1) "@"
Correction des incohérences de $this
Bien que $this est considéré une variable spéciale en PHP, elle lui manquait des contrôles appropriés pour s'assurer qu'elle n'était pas utilisé comme nom de variable ou réassigné. Ceci a été désormais rectifié pour s'assurer que $this ne peut pas être une variable définit par l'utilisateur, réassigné à une différente valeur, ou globalisé.
Génération d'ID de session sans hachage
Les IDs de session ne seront plus hashé dès la génération. Avec ce changement ceci amène à la suppression des quatres paramètres ini suivant :
-
session.entropy_file
-
session.entropy_length
-
session.hash_function
-
session.hash_bits_per_character
Et l'addition des deux paramètres ini suivant :
-
session.sid_length
- définit la longeur de l'ID de session, par défaut 32 caractères pour la rétrocompatibilité. -
session.sid_bits_per_character
- définit le nombre de bits à enregistrer par caractère (c.à.d augmente l'intervale de caractères qui peuvent être utilisé dans l'ID de session), par défaut 4 pour la rétrocompatibilité.
Modifications apportées à la gestion des fichiers INI
-
precision
-
Si la valeur est définit à -1, alors le mode dtoa 0 est utilisé. La valeur par défaut est toujours 14.
-
serialize_precision
-
Si la valeur est définit à -1, alors le mode dtoa 0 est utilisé. La valeur -1 est désormais utilisé par défaut.
-
gd.jpeg_ignore_warning
-
La valeur par défaut de ce paramètre php.ini a été modifié à 1, donc par défaut les avertissements libjpeg sont ignorés.
-
opcache.enable_cli
-
La valeur par défaut de ce paramètre php.ini a été modifié à 1 (activé) en PHP 7.1.2.
Génération des IDs de sessions seulement avec un CSPRNG
Les IDs de sessions seront désormais seulement générés avec un CSPRNG (Crypto Secure Pseudo Random Number Generator)
Des messages TypeError plus informatifs quand NULL
est permit
Les exceptions TypeError pour les vérifications de type
arg_info fourniront désormais des messages d'erreurs plus informatifs. Si le
type du paramètre ou la type de retour accepte NULL
(soit en ayant une valeur
par défaut de NULL
soit en étant un type nullable), alors le message d'erreur
mentionnera désormais ceci avec un message "must be ... or null" ou
"must ... or be null."
Version en cache
22/12/2024 18:37:25 Cette version de la page est en cache (à la date du 22/12/2024 18:37:25) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-migration71.other-changes.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.