Um opcode VM especializado para a função array_key_exists() foi adicionado, o que melhora o desempenho desta função se ela puder ser resolvida estaticamente. No código com namespace, pode ser necessário escrever \array_key_exists()
ou importar explicitamente a função.
Quando preg_match() no modo UTF-8 (modificador "u"
) é chamado repetidamente na mesma string (mas possivelmente deslocamentos diferentes), ele só será verificado para a validade UTF-8 uma vez.
zend.exception_ignore_args é uma nova diretiva INI para incluir ou excluir argumentos de rastreamentos de pilha gerados a partir de exceções.
opcache.preload_user é uma nova diretiva INI para especificar a conta de usuário sob a qual o código de pré-carregamento é executado se, de outra forma, for executado como root (o que não é permitido por motivos de segurança).
Várias extensões foram migradas para usar exclusivamente pkg-config para a detecção de dependências de biblioteca. Geralmente, isso significa que, em vez de usar --with-foo-dir=DIR ou similar, apenas --with-foo é usado. Os caminhos de biblioteca personalizados podem ser especificados adicionando diretórios adicionais a PKG_CONFIG_PATH
ou especificando explicitamente as opções de compilação por meio de FOO_CFLAGS
e FOO_LIBS
.
As seguintes extensões e SAPIs são afetadas:
fputcsv(), fgetcsv(), SplFileObject::fputcsv(), SplFileObject::fgetcsv(), e SplFileObject::setCsvControl() agora aceitam uma string vazia como argumento $escape
, que desativa o mecanismo de escape proprietário do PHP.
O comportamento de str_getcsv() foi ajustado adequadamente (anteriormente, uma string vazia era idêntica a usar o padrão).
SplFileObject::getCsvControl() agora também pode retornar uma string vazia para o terceiro elemento do array, adequadamente.
A extensão filter não expõe mais --with-pcre-dir para compilações Unix e agora pode ser construída de forma confiável como compartilhada ao usar ./configure
O comportamento de imagecropauto() no pacote libgd foi sincronizado com o do sistema libgd:
IMG_CROP_DEFAULT
não está mais voltando para IMG_CROP_SIDES
O parâmetro $mode
padrão de ] imagecropauto() foi alterado para IMG_CROP_DEFAULT
; passar -1
agora está descontinuado.
imagescale() agora oferece suporte à proporção preservando a escala para uma altura fixa passando -1
como $new_width
.
A extensão hash não pode mais ser desativada e é sempre parte integrante de qualquer compilação do PHP, semelhante à extensão date.
O suporte para nsldap e umich_ldap foi removido.
Todas as extensões baseadas em libxml agora requerem libxml 2.7.6 ou mais recente.
A biblioteca oniguruma não é mais empacotada com o PHP, em vez disso libonig precisa estar disponível no sistema. Alternativamente, --disable-mbregex pode ser usado para desabilitar o componente mbregex.
As opções de configuração --disable-opcache-file e --enable-opcache-file foram removidas em favor da diretiva INI opcache.file_cache.
As funções password_hash() e password_needs_rehash() agora aceitam string anulável e int para o argumento $algo
.
A instalação do PEAR (incluindo PECL) não é mais habilitada por padrão. Ele pode ser ativado explicitamente usando --with-pear. Esta opção está descontinuada e pode ser removida no futuro.
Os valores numéricos das constantes do modificador (IS_ABSTRACT
, IS_DEPRECATED
, IS_EXPLICIT_ABSTRACT
, IS_FINAL
, IS_IMPLICIT_ABSTRACT
, IS_PRIVATE
, IS_PROTECTED
, IS_PUBLIC
, e IS_STATIC
) nas classes ReflectionClass, ReflectionFunction, ReflectionMethod, ReflectionObject, e ReflectionProperty foram alterados.
SimpleXMLElement agora implementa Countable.
O pacote libsqlite foi removido. Para construir a extensão SQLite3, um sistema libsqlite3 ≥ 3.7.4 agora é necessário. Para construir a extensão PDO_SQLite, um sistema libsqlite3 ≥ 3.5.0 agora é necessário.
A serialização e desserialização de SQLite3, SQLite3Stmt e SQLite3Result agora são explicitamente proibidas. Anteriormente, a serialização de instâncias dessas classes era possível, mas a desserialização produzia objetos inutilizáveis.
A notação @param
agora também pode ser usada para denotar parâmetros de consulta SQL.
A biblioteca libzip empacotada foi removida. Um sistema libzip >= 0.11 agora é necessário para construir a extensão zip.