Outras mudanças
PHP Core
Set(raw)cookie aceita Argumento $option
setcookie() e setrawcookie() agora também suportam a seguinte assinatura:
onde$options
é um array associativo que pode ter
qualquer uma das chaves "expires"
, "path"
,
"domain"
, "secure"
,
"httponly"
e "samesite"
.
Novas Diretivas Syslog ini
As seguintes diretivas ini foram adicionadas para personalizar o log, se
error_log for definido como
syslog
:
- syslog.facility
- Especifica que tipo de programa está registrando a mensagem.
- syslog.filter
-
Especifica o tipo de filtro para filtrar as mensagens registradas, com os
tipos de filtro suportados -
all
,no-ctrl
eascii
. A partir do PHP 7.3.8, oraw
também está disponível, restaurando o comportamento do syslog nas versões anteriores do PHP. Este filtro também afetará as chamadas para syslog(). - syslog.ident
- Especifica a string de identificação que é anexada a cada mensagem.
Garbage Collection
O cyclic GC foi aprimorado, o que pode resultar em melhorias consideráveis de desempenho.
Diversos
var_export() agora exporta objetos stdClass
como um array convertido em um objeto ((object) array( ... )
), em vez de
usar o método inexistente stdClass::__setState().
debug_zval_dump() foi alterado para exibir arrays e objetos recursivos da mesma forma que var_dump(). Agora, ele não os exibe duas vezes.
array_push() e array_unshift() agora também podem ser chamados com um único argumento, o que é particularmente conveniente wrt. O operador de spread.
Interactive PHP Debugger
As constantes não utilizadas PHPDBG_FILE
,
PHPDBG_METHOD
, PHPDBG_LINENO
e
PHPDBG_FUNC
foram removidas.
FastCGI Process Manager
A função getallheaders() agora também está disponível.
Client URL Library
libcurl ≥ 7.15.5 agora é necessário.
Filtragem de Dados
FILTER_VALIDATE_FLOAT
agora também suporta a opção thousand
,
que define o conjunto de caracteres separadores de mil permitidos. O padrão
("',."
) é totalmente compatível com versões anteriores do PHP.
FILTER_SANITIZE_ADD_SLASHES
foi adicionado como um alias do filtro
magic_quotes
(FILTER_SANITIZE_MAGIC_QUOTES
).
O filtro magic_quotes
está sujeito a remoção em versões futuras do PHP.
FTP
O modo de transferência padrão foi alterado para binary
..
Funções de Internacionalização
Normalizer::NONE
está descontinuada, quando o PHP está vinculado com
ICU ≥ 56.
Introduzido NNormalizer::FORM_KC_CF
como
argumento Normalizer::normalize() para
normalização NFKC_Casefold
disponível quando vinculado a
ICU ≥ 56.
JSON
Uma nova flag foi adicionada, JSON_THROW_ON_ERROR
, que pode ser
usado com json_decode() ou
json_encode() e faz com que essas funções lancem o novo
JsonException em caso de erro, em vez de definir o estado de
erro global que é recuperado com
json_last_error() e json_last_error_msg().
JSON_PARTIAL_OUTPUT_ON_ERROR
tem precedência sobre
JSON_THROW_ON_ERROR
.
Multibyte String
A opção de configuração --with-libmbfl não está mais disponível.
ODBC (Unificado)
O suporte para ODBCRouter
e Birdstep
,
incluindo a diretiva ini birdstep.max_links
, foi
removido.
OPcache
A diretiva ini opcache.inherited_hack
foi removida.
O valor já foi ignorado desde o PHP 5.3.0.
OpenSSL
As opções de stream ssl min_proto_version
e max_proto_version
,
bem como constantes relacionadas para possíveis valores de protocolo TLS
foram adicionadas.
Expressões Regulares (Compatíveis com Perl)
A extensão PCRE foi atualizada para PCRE2, o que pode causar pequenas alterações comportamentais (por exemplo, intervalos de caracteres em classes agora são interpretados com mais rigor) e aumenta a sintaxe de expressão regular existente.
preg_quote() agora também escapa do caractere
'#'
.
Funções Microsoft SQL Server e Sybase (PDO_DBLIB)
O atributo PDO::DBLIB_ATTR_SKIP_EMPTY_ROWSETS
para habilitar o
salto automático de conjuntos de linhas vazios foi adicionado.
O atributo PDO::DBLIB_ATTR_TDS_VERSION
que expõe a versão
TDS foi adicionado
As colunas DATETIME2 agora são tratadas como colunas DATETIME.
Funções SQLite (PDO_SQLITE)
Os bancos de dados SQLite3 agora podem ser abertos no modo somente leitura, definindo o novo
atributo PDO::SQLITE_ATTR_OPEN_FLAGS
como
PDO::SQLITE_OPEN_READONLY
.
Tratamento de Sessão
session_set_cookie_params() agora também suporta a seguinte assinatura:
onde$options
é um array associativo que pode ter
qualquer uma das chaves "lifetime"
, "path"
,
"domain"
, "secure"
,
"httponly"
e "samesite"
Da mesma forma,
o valor de retorno de session_get_cookie_params() agora também
possui um elemento com a chave "samesite"
.
Além disso, foi adicionada a nova opção ini session.cookie_samesite
para
definir o padrão da diretiva SameSite para cookies. O padrão
é ""
(string vazia), portanto, nenhuma diretiva SameSite é
definida. Pode ser definido como "Lax"
ou "Strict"
,
que define a respectiva diretiva SameSite.
Tidy
Construir contra » tidyp agora também é
suportado de forma transparente. Uma vez que o tidyp não oferece nenhuma API para obter a data de lançamento,
tidy_get_release() e tidy::getRelease()
retornam 'unknown'
neste caso.
Analisador de XML
O valor de retorno do retorno de chamada xml_set_external_entity_ref_handler() não é mais ignorado se a extensão tiver sido criada em libxml. Anteriormente, o valor de retorno era ignorado e a análise nunca parava.
Zip
Compilar com o pacote libzip é desencorajado, mas ainda é possível adicionando --without-libzip à configuração.
Compressão Zlib
A opção de contexto zlib/level para o wrapper compress.zlib wrapper para facilitar a configuração do nível de compactação desejado foi adicionada.