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
-
Os métodos ZipArchive::addGlob() e ZipArchive::addPattern() aceitam mais valores no argumento do array de
options
:flags
comp_method
comp_flags
env_method
enc_password
-
Os métodos ZipArchive::addEmptyDir(), ZipArchive::addFile() e ZipArchive::addFromString() possuem um novo argumento
flags
. Isso permite gerenciar a codificação de nomes (ZipArchive::FL_ENC_*
) e a substituição de entradas (ZipArchive::FL_OVERWRITE
). -
ZipArchive::extractTo() agora restaura o tempo de modificação do arquivo.
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
-
O parâmetro
num_points
de imagepolygon(), imageopenpolygon() e imagefilledpolygon() agora é opcional, ou seja, essas funções podem ser chamadas com 3 ou 4 argumentos. Se o argumento for omitido, será calculado comocount($points)/2
. -
A função imagegetinterpolation() para obter o método de interpolação atual foi adicionada.
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).