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
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) "@"
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é.
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é.
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.
Les IDs de sessions seront désormais seulement générés avec un CSPRNG (Crypto Secure Pseudo Random Number Generator)
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."