## Autres changements

### Notices et avertissements sur les opérations arithmétiques avec chaînes invalides

De 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 affectations équivalentes. 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

### Avertissement 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, 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) "@"

### Correction des incohérences de `$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 valeur différente ou globalisée.

### Génération d'ID de session sans hachage

Les IDs de session ne seront plus hachés dès la génération. Avec ce changement ceci amène à la suppression des quatre 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'intervalle de caractères qui peuvent être utilisés 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éfinie à -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.

### 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 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."

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open