## Otros cambios

### Avisos y advertencias sobre operaciones aritméticas con strings inválidos

Se han introducido nuevos errores `E_WARNING` y `E_NOTICE` cuando strings inválidos son forzados utilizando operadores que esperan números (`+` `-` `*` `/` `**` `%` `<<` `>>` `|` `&` `^`) o sus asignaciones equivalentes. Un `E_NOTICE` es emitido cuando el string comienza con un valor numérico pero contiene caracteres no numéricos al final, y un `E_WARNING` es emitido cuando el string no contiene un valor numérico.

    <?php
    '1b' + 'something';

El ejemplo anterior mostrará:

    Notice: A non well formed numeric value encountered in %s on line %d
    Warning: A non-numeric value encountered in %s on line %d

### Advertencia en caso de desbordamiento de la secuencia de escape octal

Anteriormente, las secuencias de escape de string octal de 3 bytes desbordaban silenciosamente. Ahora, siempre desbordarán, pero se emitirá un `E_WARNING`.

    <?php
    var_dump("\500");

El ejemplo anterior mostrará:

    Warning: Octal escape sequence overflow \500 is greater than \377 in %s on line %d
    string(1) "@"

### Corrección de las inconsistencias de `$this`

Aunque `$this` es considerada una variable especial en PHP, le faltaban controles adecuados para asegurar que no se utilizara como nombre de variable o reasignada. Esto ha sido rectificado para asegurar que `$this` no puede ser una variable definida por el usuario, reasignada a un valor diferente o globalizada.

### Generación de ID de sesión sin hashing

Los IDs de sesión ya no serán hasheados desde la generación. Con este cambio, se eliminan los siguientes cuatro parámetros ini:

- `session.entropy_file`
- `session.entropy_length`
- `session.hash_function`
- `session.hash_bits_per_character`

Y se añaden los siguientes dos parámetros ini:

- `session.sid_length` - define la longitud del ID de sesión, por defecto 32 caracteres para la retrocompatibilidad.
- `session.sid_bits_per_character` - define el número de bits a registrar por caracter (es decir, aumenta el intervalo de caracteres que pueden ser utilizados en el ID de sesión), por defecto 4 para la retrocompatibilidad.

### Modificaciones aplicadas a la gestión de los ficheros INI

`precision`

  Si el valor es definido a -1, entonces el modo dtoa 0 es utilizado. El valor por defecto sigue siendo 14.

`serialize_precision`

  Si el valor es definido a -1, entonces el modo dtoa 0 es utilizado. El valor -1 es ahora utilizado por defecto.

`gd.jpeg_ignore_warning`

  El valor por defecto de este parámetro php.ini ha sido modificado a 1, por lo que por defecto los avisos libjpeg son ignorados.

`opcache.enable_cli`

  El valor por defecto de este parámetro php.ini ha sido modificado a 1 (activado) en PHP 7.1.2, y vuelto a 0 (desactivado) en PHP 7.1.7.

### Generación de IDs de sesiones solo con un CSPRNG

Los IDs de sesiones serán ahora generados solo con un CSPRNG (Crypto Secure Pseudo Random Number Generator).

### Mensajes TypeError más informativos cuando `null` es permitido

Las excepciones TypeError para las verificaciones de tipo arg_info proporcionarán ahora mensajes de error más informativos. Si el tipo del parámetro o el tipo de retorno acepta `null` (ya sea teniendo un valor por defecto de `null` o siendo un tipo nullable), entonces el mensaje de error mencionará esto con un mensaje "must be ... or null" o "must ... or be null."

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