Outras mudanças

Alterações nos Módulos SAPI

Apache2Handler

O módulo PHP foi renomeado de php7_module para php_module.

Funções alteradas

Reflection

Os resultados de ReflectionClass::getConstants() e ReflectionClass::getReflectionConstants() agora podem ser filtrados por meio de um novo filter de parâmetro. Três novas constantes foram adicionadas para serem usadas com ele:

Padrão

As funções matemáticas abs(), ceil(), floor() e round() agora atendem adequadamente à diretiva strict_types. Anteriormente, eles coagiam o primeiro argumento mesmo no modo de tipo estrito.

Zip

Outras alterações nas extensões

CURL

  • A extensão CURL agora requer pelo menos libcurl 7.29.0.

  • O parâmetro descontinuado version de curl_version() foi removido.

Date and Time

DatePeriod agora implementa IteratorAggregate (em vez de Traversable).

DOM

DOMNamedNodeMap e DOMNodeList agora implementam IteratorAggregate (em vez de Traversable).

Intl

IntlBreakIterator e ResourceBundle agora implementam IteratorAggregate (em vez de Traversable).

Enchant

A extensão enchant agora usa libenchant-2 por padrão quando disponível. libenchant versão 1 ainda é suportada, mas foi descontinuada e pode ser removida no futuro.

GD

JSON

A extensão JSON não pode mais ser desativada e é sempre parte integrante de qualquer compilação do PHP, semelhante à extensão de data.

MBString

As tabelas de dados Unicode foram atualizadas para a versão 13.0.0.

PDO

PDOStatement agora implementa IteratorAggregate (em vez de Traversable).

LibXML

A versão mínima necessária do libxml agora é 2.9.0. Isso significa que o carregamento de entidade externa agora está desativado por padrão e nenhuma etapa extra precisa ser tomada para proteger contra ataques XXE.

MySQLi / PDO MySQL

  • Quando mysqlnd não é usado (que é a opção padrão e recomendada), a versão mínima suportada do libmysqlclient agora é 5.5.

  • mysqli_result agora implementa IteratorAggregate (ao invés de Traversable).

PGSQL / PDO PGSQL

As extensões PGSQL e PDO PGSQL agora requerem pelo menos libpq 9.1.

Readline

Chamar readline_completion_function() antes do início do prompt interativo (por exemplo, em auto_prepend_file) agora substituirá a função padrão de conclusão do prompt interativo. Anteriormente, readline_completion_function() só funcionava quando chamado após iniciar o prompt interativo.

SimpleXML

SimpleXMLElement agora implementa RecursiveIterator e absorveu a funcionalidade de SimpleXMLIterator. SimpleXMLIterator é uma extensão vazia de SimpleXMLElement.

Alterações na manipulação de arquivos INI

  • com.dotnet_version é uma nova diretiva INI para escolher a versão da estrutura .NET a ser usada para objetos dotnet.

  • zend.exception_string_param_max_len é uma nova diretiva INI para definir o comprimento máximo da string em um argumento de uma string de pilha stringificada.

EBCDIC

Os destinos EBCDIC não são mais suportados, embora seja improvável que ainda estivessem funcionando.

Desempenho

  • Um compilador Just-In-Time (JIT) foi adicionado à extensão opcache.

  • array_slice() em uma matriz sem lacunas não irá mais varrer toda a matriz para encontrar o deslocamento inicial. Isso pode reduzir significativamente o tempo de execução da função com grandes deslocamentos e pequenos comprimentos.

  • strtolower() agora usa uma implementação SIMD ao usar a localidade "C" LC_CTYPE (que é o padrão).