Funcionalidades descontinuadas
PHP Core
Implementar Serializable sem __serialize() e __unserialize()
Apenas os novos métodos devem ser implementados, se nenhum suporte para PHP anterior à versão 7.4 for fornecido, ou ambos devem ser implementados.
Passar null
para parâmetros não não-anuláveis de funções embutidas
Tipos escalares para funções embutidas são anuláveis por padrão. Esse comportamento está descontinuado para alinhar com o comportamento de funções definidas pelo usuário, onde tipos escalares precisam ser explicitamente marcados como anuláveis.
<?php
var_dump(str_contains("foobar", null));
// Deprecated: Passing null to parameter #2 ($needle) of type string
// is deprecated
?>
Conversões float para int incompatíveis implícitas
A conversão implícita de float para int que leva a uma perda de precisão agora está descontinuada. Isso afeta chaves de array, Declarações do tipo int no modo coercitivo, e operadores trabalhando em ints.
<?php
$a = [];
$a[15.5]; // descontinuado, pois o valor da chave perde o componente de 0.5
$a[15.0]; // ok, pois 15.0 == 15
?>
Chamar o elemento static em um trait
Chamar um método static, ou acessar uma propriedade static diretamente em um trait está descontinuado. Métodos e propriedades estáticos devem ser acessados apenas em uma classe usando o trait.
Retornar um não-array da __sleep()
Retornar um valor que não é um array da __sleep() agora gera um diagnóstico.
Retornar por referência de uma função void
<?php
function &test(): void {}
?>
E_NOTICE
quando chamada:
Only variable references should be returned by reference
.
Autovivificação a partir de false
Autovivificação é o processo de criar um novo array ao
acrescentar um valor.
Autovivificação é proibida a partir de valores escalares, false
, no entanto
era uma exceção. Isso está descontinuado agora.
<?php
$arr = false;
$arr[] = 2; // descontinuado
?>
Note:
Autovivificação a partir de
null
e valores não indefinidos ainda é permitida:<?php // A partir de indefinido $arr[] = 'some value'; $arr['doesNotExist'][] = 2; // A partir de null $arr = null; $arr[] = 2; ?>
ctype
Verificar argumentos não-string
Passar um argumento não-string está descontinuado.
No futuro, o argumento será interpretado como uma string em vez
de um codepoint ASCII.
Dependendo do comportamento pretendido, o argumento deve ser
convertido para string ou uma chamada explícita para
chr() deve ser feita.
Todas as funções ctype_*()
são afetadas.
Data
date_sunrise() e date_sunset() foram descontinuadas em favor de date_sun_info().
strptime() foi descontinuada. Use date_parse_from_format() em vez dela (para análise independente de localidade), ou IntlDateFormatter::parse() (para análise dependente de localidade).
strftime() e gmstrftime() foram descontinuadas. Em vez delas, use date() (para formatação independente de localidade), ou IntlDateFormatter::format() (para formatação dependente de localidade).
Filtros
Os filtros FILTER_SANITIZE_STRING
e
FILTER_SANITIZE_STRIPPED
estão descontinuados.
A diretiva INI filter.default está descontinuada.
GD
O num_points
da imagepolygon(),
imageopenpolygon() e imagefilledpolygon()
foi descontinuado.
Hash
A mhash(),
mhash_keygen_s2k(),
mhash_count(),
mhash_get_block_size(),
e mhash_get_hash_name() foram descontinuadas.
Use as funções hash_*()
em vez delas.
IMAP
A constante NIL
foi descontinuada.
Use 0
em vez dela.
Intl
Chamar IntlCalendar::roll() com um
argumento bool está descontinuado.
Use 1
e -1
em vez de
true
e false
respectivamente.
Multibyte String
Chamar mb_check_encoding() sem argumentos está descontinuado.
MySQLi
A propriedade mysqli_driver::$driver_version
foi descontinuada.
Ela era sem sentido e desatualizada, use PHP_VERSION_ID
em vez dela.
Chamar mysqli::get_client_info() ou
mysqli_get_client_info() com o
argumento mysqli
foi descontinuado.
Chame mysqli_get_client_info() sem argumentos
para obter a informação de versão da biblioteca cliente.
O método mysqli::init() foi descontinuado. Substitua chamadas para parent::init() por parent::__construct().
OCI8
A diretiva INI oci8.old_oci_close_semantics está descontinuada.
ODBC
odbc_result_all() foi descontinuada.
PDO
O modo de busca PDO::FETCH_SERIALIZE
foi descontinuado.
PgSQL
Não passar o argumento de conexão para todas as funções pgsql_*()
foi descontinuado.
SOAP
A opção ssl_method
do
SoapClient::__construct() foi descontinuada
em favor das opções de contexto de stream SSL.
Biblioteca Padrão
Chamar key(), current(), next(), prev(), reset(), ou end() em objects está descontinuado. Primeiro converta o object para um array utilizando get_mangled_object_vars(), ou utilize os métodos fornecidos por uma classe que implemente Iterator, como por exemplo ArrayIterator.
A diretiva INI auto_detect_line_endings
está descontinuada.
Se necessário, em vez dela, lide com quebras de linha "\r"
manualmente.
As constantes FILE_BINARY
e
FILE_TEXT
foram descontinuadas.
Elas nunca tiveram nenhum efeito.