Note that using Incrementing/Decrementing operators on string is legal
<?php
$str = "";
echo ++$str; // output: 1
?>
Des nouvelles erreurs E_WARNING
et E_NOTICE
ont été introduites quand des chaîne de caractères invalides sont contraintes en utilisant
des opérateurs s'attendant à des nombres (+
-
*
/
**
%
<<
>>
|
&
^
) ou leurs
assignements équivalents. 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, elles 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) "@"
$this
Bien que $this
soit considérée comme une variable spéciale en
PHP, il lui manquait des contrôles appropriés pour s'assurer qu'elle n'était pas
utilisée comme nom de variable ou réassignée. Ceci a été désormais rectifié pour
s'assurer que $this
ne peut pas être une variable définie par
l'utilisateur, réassignée à une différente valeur ou globalisée.
Les IDs de session ne seront plus hachés dès la génération. Avec ce changement ceci amène à la suppression des quatres paramètres ini suivants :
session.entropy_file
session.entropy_length
session.hash_function
session.hash_bits_per_character
Et l'addition des deux paramètres ini suivants :
session.sid_length
- définit la longueur 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és 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éfinie à -1, alors le mode dtoa 0 est utilisé. La valeur -1 est désormais utilisée par défaut.
gd.jpeg_ignore_warning
La valeur par défaut de ce paramètre php.ini a été modifiée à 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ée à 1 (activé) en PHP 7.1.2, et retour à 0 (désactivé) en PHP 7.1.7.
Les IDs de sessions seront désormais seulement générés avec un CSPRNG (Crypto Secure Pseudo Random Number Generator)
null
est permis
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 le 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."