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.