Note that using Incrementing/Decrementing operators on string is legal
<?php
$str = "";
echo ++$str; // output: 1
?>
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
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) "@"
$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.
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.
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.
Los IDs de sesiones serán ahora generados solo con un CSPRNG (Crypto Secure Pseudo Random Number Generator).
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."