Recursos descontinuados
PHP Core
Operadores ternários aninhados sem parênteses explícitos
Operações ternárias aninhadas devem usar explicitamente parênteses para ditar a ordem das operações. Anteriormente, quando usada sem parênteses, a associatividade esquerda não resultava no comportamento esperado na maioria dos casos.
<?php
1 ? 2 : 3 ? 4 : 5; // descontinuado
(1 ? 2 : 3) ? 4 : 5; // ok
1 ? 2 : (3 ? 4 : 5); // ok
?>
Parenteses não são necessários quando organizando um operando interno, pois não gera ambiguidade ou problemas de associatividade:
1 ? 2 ? 3 : 4 : 5 // ok
Acesso a valores de array e string usando chaves
O acesso a valor de string e array usando a sintaxe de chaves está
descontinuado. Use $var[$idx]
ao invés de
$var{$idx}
.
A conversão (real) e a função is_real()
A conversão (real)
está descontinuada,
use (float)
em seu lugar.
A função is_real() também está descontinuada, use is_float() em seu lugar.
Desvinculando $this
quando $this
é usado
Desvincular $this
de uma closure não estática
que usa $this
está descontinuado.
A palavra chave parent
sem uma classe parent
Usar a palavra chave parent
dentro de uma classe sem parent
está descontinuado, e lançará um erro em tempo de compilação no futuro.
Atualmente um erro será gerado apenas se/quando o parent for
acessado em tempo de execução.
A diretiva INI allow_url_include
A diretiva allow_url_include está descontinuada. Ativá-la gerará um aviso de descontinuação na inicialização.
Caracteres inválidos nas funções de conversão de base
Passar caracteres inválidos para as funções: base_convert(), bindec(), octdec() and hexdec()agora gerará um aviso de descontinuação. O resultado ainda será calculado como se os caracteres inválidos não existissem. Os espaços em branco à esquerda e à direita, bem como os prefixos do tipo 0x (dependendo da base) continuam sendo permitidos.
Usando array_key_exists() em objetos
O uso de array_key_exists() em objetos está descontinuado. Em vez disso isset() ou property_exists() deve ser usado.
Funções magic quotes
As funções get_magic_quotes_gpc() e get_magic_quotes_runtime()
estão descontinuadas. Elas sempre retornam false
.
Função hebrevc()
A função hebrevc() está descontinuada.
Ela pode ser substituída por nl2br(hebrev($str))
ou,
preferencialmente, pelo uso do suporte Unicode RTL.
Função convert_cyr_string()
A função convert_cyr_string() está descontinuada. Pode ser substituída por um dos mb_convert_string(), iconv() ou UConverter.
Função money_format()
A função money_format() está descontinuada. Ela pode ser substituída pela funcionalidade intl NumberFormatter.
Função ezmlm_hash()
A função ezmlm_hash() está descontinuada.
Função restore_include_path()
A função restore_include_path() está descontinuada.
Pode ser substituída por ini_restore('include_path')
.
Implode com a ordem histórica dos parâmetros
A passagem de parâmetros para a função implode() na ordem reversa
está descontinuada, use implode($glue, $parts)
em vez de implode($parts, $glue)
.
COM
A importação de bibliotecas de tipos com registro constante que não diferencia maiúsculas de minúsculas foi descontinuada.
Filter
FILTER_SANITIZE_MAGIC_QUOTES
está descontinuada,
use FILTER_SANITIZE_ADD_SLASHES
em seu lugar.
Multibyte String
A passagem de um padrão não-string para a função mb_ereg_replace() está descontinuado. Atualmente, os padrões não-string são interpretados como pontos de código ASCII. No PHP 8, o padrão será interpretado como uma string.
Passar a codificação como terceiro parâmetro para a função mb_strrpos() está descontinuado. Em vez disso, passe um offset 0 e a codificação como quarto parâmetro.
Lightweight Directory Access Protocol
ldap_control_paged_result_response() e ldap_control_paged_result() estão descontinuadas. Os controles de paginação podem ser enviados com a função ldap_search().
Reflection
As chamadas para ReflectionType::__toString() agora geram, um aviso de descontinuação. Este método foi descontinuado em favor de ReflectionNamedType::getName() na documentação a partir do PHP 7.1, mas não emitiu um aviso de descontinuação por motivos técnicos.
Os métodos export()
em todas as classes Reflection
foram descontinuados. Construa um objeto Reflection e
converta-o em string em seu lugar:
<?php
// ReflectionClass::export(Foo::class, false) is:
echo new ReflectionClass(Foo::class), "\n";
// $str = ReflectionClass::export(Foo::class, true) is:
$str = (string) new ReflectionClass(Foo::class);
?>
Socket
AI_IDN_ALLOW_UNASSIGNED
e
AI_IDN_USE_STD3_ASCII_RULES
para
socket_addrinfo_lookup() foram descontinuadas,
devido a uma descontinuação na própria glibc.