El marcador de cierre para las cadenas doc ya no es requerido de ser seguido por un punto y coma o un retorno de línea. Adicionalmente, el marcador de cierre puede ser indentado, en este caso la indentación será retirada de todas las líneas en la cadena doc.
La desestructuración de arrays soporta ahora las asignaciones de
referencia utilizando la sintaxis
[&$a, [$b, &$c]] = $d
.
Esto también es soportado para list().
instanceof
acepta ahora los literales como primer
operando, en este caso el resultado es siempre false
.
Se ha añadido una nueva excepción CompileError, de la cual ParseError hereda. Un pequeño número de errores
de compilación lanzarán ahora CompileError en lugar de generar un error fatal. Actualmente esto afecta únicamente a los
errores de compilación que pueden ser lanzados por
token_get_all() en el modo TOKEN_PARSE
,
pero más errores podrán ser convertidos en el futuro.
Las comas de fin en las llamadas de funciones y métodos son ahora autorizadas.
El argumento de configuración
--with-password-argon2[=dir]
proporciona ahora el soporte para los hash Argon2i y Argon2id en las
funciones password_hash(),
password_verify(),
password_get_info(), y
password_needs_rehash(). Las contraseñas pueden ser
hasheadas y verificadas utilizando la constante PASSWORD_ARGON2ID
.
El soporte para Argon2i y Argon2id en las funciones
password_*() requiere ahora que PHP esté ligado a
la biblioteca de referencia libargon2 ≥ 20161029.
Se han añadido nuevas opciones para personalizar los registros de eventos FPM :
log_limit
log_buffering
decorate_workers_output
catch_workers_output
está activado.
bcscale() puede ahora ser utilizado como recuperador para recuperar la precisión actualmente en uso.
Se ha añadido soporte total para los Controles LDAP a las funciones de consulta LDAP y ldap_parse_result() :
$controls
para enviar los controles
al servidor en ldap_add(),
ldap_mod_replace(), ldap_mod_add(),
ldap_mod_del(), ldap_rename(),
ldap_compare(), ldap_delete(),
ldap_modify_batch(),
ldap_search(), ldap_list() y
ldap_read().
$controls
para recuperar los
controles desde el servidor en ldap_parse_result().
LDAP_OPT_SERVER_CONTROLS
y
LDAP_OPT_CLIENT_CONTROLS
en
ldap_get_option() y
ldap_set_option().
Se ha añadido soporte para el mapeo de caja completa y plegado de caja. A diferencia del mapeo básico de caja, el mapeo de caja completa puede modificar la longitud de la cadena. Por ejemplo :
<?php
mb_strtoupper("Straße");
// Produce STRAßE en PHP 7.2
// Produce STRASSE en PHP 7.3
?>
MB_CASE_LOWER
(utilizado por mb_strtolower())
MB_CASE_UPPER
(utilizado por mb_strtoupper())
MB_CASE_TITLE
MB_CASE_FOLD
MB_CASE_LOWER_SIMPLE
MB_CASE_UPPER_SIMPLE
MB_CASE_TITLE_SIMPLE
MB_CASE_FOLD_SIMPLE
(utilizado por las operaciones insensibles a la caja)
Las operaciones de cadenas insensibles a la caja utilizan ahora el plegado de caja en lugar del mapeo de caja durante las comparaciones. Esto significa que más caracteres serán considerados (insensibles a la caja) iguales ahora.
mb_convert_case() con MB_CASE_TITLE
ejecuta ahora una conversión de caja de título basada en las propiedades
derivadas Unicode Cased y CaseIgnorable. En particular, esto también mejora
la gestión de las comillas y apóstrofes.
Las tablas de datos para las Cadenas Multi-octetos han sido actualizadas para Unicode 11.
Las Funciones de Cadenas Multi-Octetos soportan ahora correctamente las cadenas más grandes que 2Go.
Las performances de la extensión de las Cadenas Multi-Octetos han sido mejoradas de manera significativa a todos los niveles. Las mayores mejoras están en las funciones de conversión de caja.
Las funciones mb_ereg_*
soportan ahora las capturas
nombradas. Las funciones de correspondencias como mb_ereg()
devolverán ahora las capturas nombradas utilizando tanto sus
números de grupo como sus nombres, similares a PCRE :
<?php
mb_ereg('(?<word>\w+)', '国', $matches);
// => [0 => "国", 1 => "国", "word" => "国"];
?>
\k<>
y \k''
para hacer referencia
a las capturas nombradas en la cadena de reemplazo :
<?php
mb_ereg_replace('\s*(?<word>\w+)\s*', "_\k<word>_\k'word'_", ' foo ');
// => "_foo_foo_"
?>
\k<>
y \k''
pueden también ser utilizados para
las referencias numéricas, que también funcionan con números de grupo
superiores a 9.
Se ha añadido soporte para las opciones completion_append_character
y completion_suppress_append
a
readline_info(). Estas opciones están disponibles solo
si PHP está ligado a libreadline (en lugar de libedit).