Outras Mudanças
Mudanças nos Módulos SAPI
CLI
Usando -a sem a extensão readline agora resultará em um erro.
Anteriormente, -a sem readline havia o mesmo comportamento que
chamar php sem nenhum argumento, além de imprimir uma mensagem adicional
"Interactive mode enabled"
.
Esse modo não era interativo.
PHPDBG
Funcionalidade remota do phpdbg foi removida.
Funções Alteradas
Core
A ordem das propriedades usadas em foreach, var_dump(), serialize(), comparação de objetos, etc. foi alterada. Propriedades agora são ordenadas naturalmente de acordo com a declaração e herança deles. Propriedades declaradas em uma classe base estarão antes das propriedades das filhas.
A ordem é consistente com o layout interno das propriedades na estrutura
zend_object
e repete a ordem em
default_properties_table[]
e properties_info_table[]
.
A velha ordem não foi documentada e era causada por detalhes de implementação de herança de classes.
Filtro
A flag FILTER_FLAG_ALLOW_OCTAL
do
filtro FILTER_VALIDATE_INT
agora aceita strings octais com o prefixo octal
("0o"
/"0O"
).
GMP
Todas as funções GMP agora aceitam string octal com o prefixo octal
("0o"
/"0O"
).
PDO ODBC
PDO::getAttribute() com
PDO::ATTR_SERVER_INFO
e
PDO::ATTR_SERVER_VERSION
agora retorna valores ao invés de lançar PDOException.
Reflexão
ReflectionProperty::setAccessible() e ReflectionMethod::setAccessible() não têm mais efeito. Propriedades e métodos agora são sempre considerados acessíveis via Reflexão.
Padrão
syslog() agora é segura para binários.
Outras Mudanças em Extensões
GD
imagewebp() agora pode fazer codificação WebP lossless
passando IMG_WEBP_LOSSLESS
como a qualidade.
Essa constante é definida apenas se a libgd utilizada suporta codificação WebP lossless.
MySQLi
mysqli_stmt::next_result() e mysqli::fetch_all() agora estão disponíveis quando linkando contra libmysqlclient.
OpenSSL
-
A extensão OpenSSLagora requer pelo menos OpenSSL versão 1.0.2.
-
OpenSSL 3.0 agora é suportado. Esteja ciente que muitos cifradores não estão mais habilitados por padrão (parte do provedor legado), e que validação de parâmetros (p. ex.: tamanho mínimo de chaves) é mais estrita agora.
Phar
-
SHA256 agora é usado por padrão para assinaturas.
-
Adicionado suporte para assinaturas OpenSSL_SHA256 e OpenSSL_SHA512.
SNMP
-
Adicionado suporte para SHA256 e SHA512 para o protocolo de segurança.
Padrão
--with-password-argon2
agora usa pkg-config para detectar libargon2.
Como tal, o local para uma libgargon2 alternativa deve ser especificado usando
PKG_CONFIG_PATH.
Mudanças no Tratamento de Arquivos INI
-
A diretiva INI log_errors_max_len foi removida. Ela não possui mais efeito desde o PHP 8.0.0.
-
Um dólar no início de uma string entre aspas agora pode ser escapado:
"\${"
agora será interpretado como uma string de conteúdo${
. -
Barras inversas em strings entre aspas duplas agora são mais consistentemente tratadas como caracteres de escape. Anteriormente,
"foo\\"
seguida de algo diferente de uma nova linha não era considerada uma string finalizada. Agora ela é interpretada como uma string de conteúdofoo\
. No entanto, como uma exceção, a string"foo\"
seguida de uma nova linha continuará sendo tratada como uma string válida de conteúdofoo\
em vez de uma string não terminada. Essa exceção existe para suportar usos ingênuos de caminhos do Windows tais como"C:\foo\"
.