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.
null
para parâmetros não não-anuláveis de funções embutidasTipos escalares para funções embutidas são anuláveis por padrão, esse comportamento está depreciado 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
?>
A conversão implícita de float para int que leva a uma perda de precisão agora está depreciada. Isso afeta chaves de array, Declarações do tipo int no modo coercitivo, e operadores trabalhando em ints.
<?php
$a = [];
$a[15.5]; // depreciado, pois o valor da chave perde o componente de 0.5
$a[15.0]; // ok, pois 15.0 == 15
?>
Chamar um método static, ou acessar uma propriedade static diretamente em um trait está depreciado. Métodos e propriedades estáticos devem ser acessados apenas em uma classe usando o trait.
Retornar um valor que não é um array da __sleep() agora gera um diagnóstico.
<?php
function &test(): void {}
?>
E_NOTICE
quando chamada:
Only variable references should be returned by reference
.
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á depreciado agora.
<?php
$arr = false;
$arr[] = 2; // depreciado
?>
Nota:
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;
?>
Passar um argumento não-string está depreciado.
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.
date_sunrise() e date_sunset() foram depreciadas em favor de date_sun_info().
strptime() foi depreciada. 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 depreciadas. Em vez delas, use date() (para formatação independente de localidade), ou IntlDateFormatter::format() (para formatação dependente de localidade).
Os filtros FILTER_SANITIZE_STRING
e
FILTER_SANITIZE_STRIPPED
estão depreciados.
A diretiva INI filter.default está depreciada.
O num_points
da imagepolygon(),
imageopenpolygon() e imagefilledpolygon()
foi depreciado.
A mhash(),
mhash_keygen_s2k(),
mhash_count(),
mhash_get_block_size(),
e mhash_get_hash_name() foram depreciadas.
Use as funções hash_*()
em vez delas.
A constante NIL
foi depreciada.
Use 0
em vez dela.
Chamar IntlCalendar::roll() com um
argumento bool está depreciado.
Use 1
e -1
em vez de
true
e false
respectivamente.
Chamar mb_check_encoding() sem argumentos está depreciado.
A propriedade mysqli_driver::$driver_version
foi depreciada.
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 depreciado.
Chame mysqli_get_client_info() sem argumentos
para obter a informação de versão da biblioteca cliente.
O método mysqli::init() foi depreciado. Substitua chamadas para parent::init() por parent::__construct().
A diretiva INI oci8.old_oci_close_semantics está depreciada.
odbc_result_all() foi depreciada.
O modo de busca PDO::FETCH_SERIALIZE
foi depreciado.
Não passar o argumento de conexão para todas as funções pgsql_*()
foi depreciado.
A opção ssl_method
do
SoapClient::__construct() foi depreciada
em favor das opções de contexto de stream SSL.
Chamar key(), current(), next(), prev(), reset(), ou end() em objects está depreciado. 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á depreciada.
Se necessário, em vez dela, lide com quebras de linha "\r"
manualmente.
As constantes FILE_BINARY
e
FILE_TEXT
foram depreciadas.
Elas nunca tiveram nenhum efeito.