PHP Conference China 2020

Recursos depreciados

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
5;   // depreciado
(3) ? 5// ok
: (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á depreciado. Use $var[$idx] ao invés de $var{$idx}.

A conversão (real) e a função is_real()

A conversão (real) está depreciada, use (float) em seu lugar.

A função is_real() também está depreciada, use is_float() em seu lugar.

Desvinculando $this quando $this é usado

Desvincular $this de uma closure não estática que usa $this está depreciado.

A palavra chave parent sem uma classe parent

Usar a palavra chave parent dentro de uma classe sem parent está depreciado, 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á depreciada. Ativá-la gerará um aviso de depreciaçã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 depreciaçã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á depreciado. 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 depreciadas. Elas sempre retornam FALSE.

Função hebrevc()

A função hebrevc() está depreciada. 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á depreciada. Pode ser substituída por um dos mb_convert_string(), iconv() ou UConverter.

Função money_format()

A função money_format() está depreciada. Ela pode ser substituída pela funcionalidade intl NumberFormatter.

Função ezmlm_hash()

A função ezmlm_hash() está depreciada.

Função restore_include_path()

A função restore_include_path() está depreciada. Pode ser sbstituí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á depreciada, 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 depreciado.

Filter

FILTER_SANITIZE_MAGIC_QUOTES está depreciado, 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á depreciado. 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á depreciado. 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 depreciados. Os controles de paginação podem ser enviados junto com a função ldap_search().

Reflection

As chamadas para ReflectionType::__toString() agora geram, um aviso de depreciação. Este método foi depreciado em favor de ReflectionNamedType::getName() na documentação a partir do PHP 7.1, mas não emitiu um aviso de depreciação por motivos técnicos.

Os métodos export() em todas as classes Reflection foram depreciados. 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 depreciadas, devido a uma depreciação upstream na glibc.

add a note add a note

User Contributed Notes 1 note

up
5
Ahmad Asjad
3 months ago
(\?[^php]).*(\:).*(\?).*(\:[^=])
Above regex can help others to find the nested ternary operator
To Top