## Otros cambios

### Avisos y advertencias sobre aritmética con cadenas no inválidas

Se han introducido nuevos errores `E_WARNING` y `E_NOTICE` al forzar cadenas no válidas usando operadores que esperan número (`+` `-` `*` `/` `**` `%` `<<` `>>` `|` `&` `^`) o sus equivalentes de asignación. Se emite un `E_NOTICE` cuando la cadena comienza con un valor numérico pero contiene al final caracteres no numéricos, y se emite un `E_WARNING` cuando la cadena no contiene ningún valor numérico.

`<?php
'1b' + 'algo';`

El resultado del ejemplo sería:

    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 de desbordamiento de secuencia de escape octal

Anteriormente, las secuencias de escape de cadenas octales de tres octetos desbordaban silenciosamente. Ahora, siguen desbordando, pero se emite un `E_WARNING`.

`<?php
var_dump("\500");`

El resultado del ejemplo sería:

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

### Reparación de inconsistencias en `$this`

Pese a que `$this` está considerada un variable especial en PHP, carece de comprobaciones apropiadas para asegurarse de que no se usó como un nombre de variable o fue reasignada. Ahora, esto se ha rectificado para asegurarse de 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 'hash'

Los ID de sesión ya no utilzarán 'hash' en su generación. Este cambio provoca la eliminación de los cuatro siguientes ajustes ini:

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

Y la adición de los dos siguientes ajustes ini:

- `session.sid_length` - define la longitud del ID de sesión, siendo 32 caracteres la predeterminada por retrocompatibilidad
- `session.sid_bits_per_character` - define el número de bits a almacenar por carácter (esto es, aumenta el rango de caracteres que se pueden utilizar en el ID de sesión), siendo 4 el predeterminado por retrocompatibilidad

### Cambios en el manejo del fichero INI

`precision`

  Si el valor se establece a -1, se usará el modo dtoa 0. El valor predeterminado aún es 14.

`serialize_precision`

  Si el valor se establece a -1, se usará el modo dtoa 0. Ahora se usa el valor -1 como predeterminado.

`gd.jpeg_ignore_warning`

  El valor predeterminado de este ajuste de php.ini ha cambiado a 1, por lo que las advertencias predeterminadas de libjpeg son ignoradas.

`opcache.enable_cli`

  El valor predeterminado para este ajuste php.ini ha cambiado a 1 (habilitado) en PHP 7.1.2.

### Generación de ID de sesión con un CSPRNG solamente

Los ID de sesión ahora solamente serán generados con un CSPRNG.

### Mensajes TypeError más informativos cuando se permite `null`

Las excepciones TypeError para comprobaciones de tipo arg_info ahora proporcionan mensajes de error más informativos. Si el tipo de parámetro o el tipo devuelto acepta `null` (ya sea teniente un valor predeterminado de `null` o siendo un tipo «nullable»), el mensaje de error ahora mencionará esto con un mensaje "must be ... or null" o "must ... or be null."