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"
.
As seguintes diretivas ini foram adicionadas para personalizar o log, se
error_log for definido como
syslog
:
all
,
no-ctrl
e ascii
.
A partir do PHP 7.3.8, o raw
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().
O cyclic GC foi aprimorado, o que pode resultar em melhorias consideráveis de desempenho.
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.
As constantes não utilizadas PHPDBG_FILE
,
PHPDBG_METHOD
, PHPDBG_LINENO
e
PHPDBG_FUNC
foram removidas.
A função getallheaders() agora também está disponível.
libcurl ≥ 7.15.5 agora é necessário.
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.
O modo de transferência padrão foi alterado para binary
..
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.
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
.
A opção de configuração --with-libmbfl não está mais disponível.
O suporte para ODBCRouter
e Birdstep
,
incluindo a diretiva ini birdstep.max_links
, foi
removido.
A diretiva ini opcache.inherited_hack
foi removida.
O valor já foi ignorado desde o PHP 5.3.0.
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.
A PCRE extension 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
'#'
.
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.
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
.
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.
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.
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.
Compilar com o pacote libzip é desencorajado, mas ainda é possível adicionando --without-libzip à configuração.
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.