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 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 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 resultado del ejemplo sería:

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

add a note

User Contributed Notes 1 note

up
6
Ta7To7
7 years ago
Note that using Incrementing/Decrementing operators on string is legal
<?php
$str
= "";
echo ++
$str; // output: 1
?>
To Top