Anteriormente, era posible que la función number_format() devolviera -0. Aunque esto es perfectamente válido de acuerdo con la especificación de punto flotante IEEE 754, esta peculiaridad no era deseable para mostrar los números formateados en una forma legible para los humanos.
<?php
var_dump(number_format(-0.01)); // now outputs string(1) "0" instead of string(2) "-0"
Las claves numéricas ahora se manejan mejor cuando se hacen arrays de objetos y objetos en arrays (ya sea de un modo explícito o por settype()).
Esto significa que las claves de números integer (o números integer en string) de los array que están siendo lanzados a los objetos son ahora accesibles:
<?php
// array to object
$arr = [0 => 1];
$obj = (object)$arr;
var_dump(
    $obj,
    $obj->{'0'}, // ahora accesible
    $obj->{0} // ahora accesible
);
El resultado del ejemplo sería:
object(stdClass)#1 (1) {
  ["0"]=>    // la clave string ahora, en lugar de la clave de los números integer
  int(1)
}
int(1)
int(1)
Y las claves de números enteros (o string de números enteros) de los objetos que están siendo lanzados a los array son ahora accesibles:
<?php
// object to array
$obj = new class {
    public function __construct()
    {
        $this->{0} = 1;
    }
};
$arr = (array)$obj;
var_dump(
    $arr,
    $arr[0], // ahora accesible
    $arr['0'] // ahora accesible
);
El resultado del ejemplo sería:
array(1) {
  [0]=>    // clave integer ahora, en lugar de la clave de string
  int(1)
}
int(1)
int(1)
NULL a get_class()
   Anteriormente, pasar NULL a la función get_class() 
   daría a conocer el nombre de la clase adjunta. Este comportamiento ya ha sido
   eliminado, donde se emitirá un E_WARNING en su lugar. Para 
   lograr el mismo comportamiento que antes, el argumento debe ser simplemente omitido.
  
   Una advertencia E_WARNING se emitirá ahora cuando se intente
   contar (count()) tipos no contables (esto incluye la
   función alias sizeof()).
  
<?php
var_dump(
    count(null), // NULL si no es contable
    count(1), // integers no son contables
    count('abc'), // strings no son contables
    count(new stdclass), // objetos que no implementen la interfaz Countable no son contables
    count([1,2]) // arrays son contables
);
El resultado del ejemplo sería:
Warning: count(): Parameter must be an array or an object that implements Countable in %s on line %d Warning: count(): Parameter must be an array or an object that implements Countable in %s on line %d Warning: count(): Parameter must be an array or an object that implements Countable in %s on line %d Warning: count(): Parameter must be an array or an object that implements Countable in %s on line %d int(0) int(1) int(1) int(1) int(2)
Como parte de la migración a largo plazo lejos de los recursos, la extensión Hash se ha actualizado para utilizar objetos en lugar de recursos. El cambio debería ser perfecto para los desarrolladores de PHP, excepto cuando is_resource() ha hecho comprobaciones (que necesitará ser actualizado a is_object() en su lugar).
Se han hecho los siguientes cambios a los valores predeterminados:
Anteriormente, usar gettype() en un recurso cerrado devolvería un string de "unknown type". Ahora, un string de "resource (closed)" es devuelto.
   Anteriormente, usar is_object() en la clase 
   __PHP_Incomplete_Class devolvería FALSE.
   Ahora, TRUE será devuelto.
  
   Las referencias no cualificadas a constantes no definidas generarán ahora una 
   advertencia E_WARNING (en vez de una E_NOTICE).
   En la próxima versión principal de PHP, generarán 
   excepciones Error.
  
Las versiones mínimas oficialmente soportadas de Windows son ahora Windows 7/Server 2008 R2.
Las comprobaciones de compatibilidad de los valores de propiedad de los rasgos por omisión ya no se realizarán.
El nombre object fue previamente reservado en PHP 7.0. Esto ahora se ha reservado con fuerza, prohibiendo su uso como nombre de clase, rasgo o nombre de interfaz.
El soporte para NetWare ha sido eliminado.
SORT_STRING
   Mientras que array_unique() con SORT_STRING
   antes copiaba el array y eliminaba los elementos no únicos (sin empaquetar
   el array después), ahora se construye un nuevo array añadiendo
   los elementos únicos. Esto puede dar lugar a diferentes índices numéricos.
  
La función bcmod() ya no trunca números fraccionarios a números enteros. Como tal, su comportamiento ahora sigue fmod(), en lugar del operador %. Por ejemplo bcmod('4', '3.5') ahora devuelve 0.5 en lugar de 1.
   Las funciones hash_hmac(), hash_hmac_file(),
   hash_pbkdf2(), y hash_init() (con
   HASH_HMAC) ya no aceptan los no criptográficos
   hashes.
  
   La opción de la función json_decode(),
   JSON_OBJECT_AS_ARRAY, es ahora usada si el segundo
   parámetro (asociativo) es NULL. Anteriormente,
   JSON_OBJECT_AS_ARRAY siempre fue ignorado.
  
secuencias generadas por rand() y mt_rand() para una semilla específica puede diferir de PHP 7.1 en máquinas de 64 bits (debido a la fijación de un error de sesgo de módulo en la aplicación).
sql.safe_mode
   La configuración ini sql.safe_mode ha sido eliminada.
  
El elemento zone de el array devuelto por las funciones date_parse() y date_parse_from_format() ahora representan segundos en vez de minutos, y su signo está invertido. Por ejemplo -120 es ahora 7200.