Recursos depreciados na versão PHP 7.2.x

Strings sem aspas

Strings sem aspas que não são constantes globais são tomadas para ser strings delas mesmas. Este comportamento costumava emitir um E_NOTICE, mas agora irá emitir um E_WARNING. Na próxima versão maior do PHP, uma exceção Error será lançada no lugar.

<?php

var_dump
(NONEXISTENT);

/* Output:
Warning: Use of undefined constant NONEXISTENT - assumed 'NONEXISTENT' (this will throw an Error in a future version of PHP) in %s on line %d
string(11) "NONEXISTENT"
*/

png2wbmp() e jpeg2wbmp()

As funções png2wbmp() e jpeg2wbmp() da extensão GD foram depreciadas e serão removidas na próxima versão maior do PHP.

INTL_IDNA_VARIANT_2003 variante

A extensão Intl depreciou a variante INTL_IDNA_VARIANT_2003, que está sendo usada atualmente como padrão para idn_to_ascii() e idn_to_utf8(). PHP 7.4 irá mudar esses padrões para INTL_IDNA_VARIANT_UTS46, e a próxima versão maior do PHP irá remover INTL_IDNA_VARIANT_2003 completamente.

__autoload() metódo

O método __autoload() foi depreciado porque é inferior ao spl_autoload_register() (devido a não ser permitido encadear autoloaders), e não há interoperabilidade entre os dois estilos de autoloading.

Configuração ini track_errors e variável $php_errormsg

Quando a configuração ini track_errors está ativada, uma variável $php_errormsg é criada no escopo local quando um erro não fatal ocorre. Dado que a maneira preferida de recuperar tais informações de erro é usando error_get_last(), este recurso foi depreciado.

create_function() function

Dado os problemas de segurança desta função (sendo um wrapper ao redor de eval()), esta função datada foi depreciada. A alternativa preferida é o uso de funções anônimas.

Configuração ini mbstring.func_overload

Dado os problemas de interoperabilidade das funções baseadas em string sendo usadas em ambientes com esta configuração ativada, ela será despreciada.

Conversão (unset)

Convertendo qualquer expressão para este tipo sempre resultará em null, e então esta conversão de tipo supérflua foi depreciada.

parse_str() sem um segundo argumento

Sem o segundo argumento para parse_str(), os parâmetros de string de consulta preenchiam a tabela de símbolos local. Dado as implicações de segurança disto, usar parse_str() sem um segundo parâmetro foi depreciado. A função deve sempre ser usada com dois argumentos, como o segundo argumento faz com que a string de consulta seja analisada em um array.

Função gmp_random()

Esta função gera um numero aleatório baseado em um intervalo que é calculado por um tamanho de membro específico da plataforma não exposto. Por isso, esta função foi depreciada. A maneira preferida de gerar um número aleatório usando a extesão GMP é com gmp_random_bits() e gmp_random_range().

Função each()

Esta função é muito mais lenta na iteração do que um foreach normal, e causa problemas de implementações para algumas mudanças da linguagem. Portanto, ela foi depreciada.

assert() com um argumento string

Usar assert() com um argumento string requer que a string seja eval()'iada. Dado o potencial para a execução de código remoto, usar assert() com um argumento string foi depreciada em favor de usar expressão booleanas.

$errcontext argumento para manipuladores de erros

O $errcontext argumento contém todas as variáveis locais de erro do site. Dado a raridade do uso, e os problemas causados com as otimizações interncas, ele foi depreciado. Ao invés disto, um debugger deve ser usado para recuperar informações nas variáveis locais de erro do site.

Função read_exif_data()

O atalho read_exif_data() foi depreciado. A função exif_read_data() deve ser usada no lugar.

add a note add a note

User Contributed Notes 2 notes

up
14
webmaster at thedigitalorchard dot ca
6 years ago
Instead of __autoload(), you can use spl_autoload_register() very easily, as per the documentation:

spl_autoload_register(function ($class) {
    include 'classes/' . $class . '.class.php';
});

And this lets you have multiple autoloaders instead of one global one.
up
0
Anonymous
5 years ago
An empty <?php?> Codeblock in PHP 7.2.0 will put out an "Unquoted strings" warning. To prevent that, add at least one empty space into the codeblock.

Example:
<?php

<?php/*
echo "This was some useful code.\n";
*/
?>

?>
Gives: PHP Warning:  Use of undefined constant php - assumed 'php' (this will throw an Error in a future version of PHP)

Fix via:
<?php

<?php   /*
echo "This was some useful code.\";
*/
?>

?>

Don't know if that is an intentional behaviour or a side effect.
To Top