O tipo de um parâmetro é implicitamente ampliado para aceitar null
se o valor padrão para ele for null
.
O código a seguir:
<?php
function foo(T1 $a = null) {}
<?php
function foo(T1|null $a = null) {}
<?php
function foo(?T1 $a = null) {}
No entando, se tal declaração de parâmetro for seguida por um parâmetro mandatório:
<?php
function foo(T1 $a, T2 $b = null, T3 $c) {}
<?php
function foo(T1 $a, T2|null $b, T3 $c) {}
<?php
function foo(T1 $a, ?T2 $b, T3 $c) {}
Elevar um número à potência de um número negativo equivale a elevar
o inverso do número ao oposto positivo da potência.
Isto é, 10-2
é o mesmo que
1 / 102
.
Portanto, elevar 0
à potência de um número negativo
corresponde a dividir por 0
, ou seja,
0-2
é o mesmo que
1 / 02
, ou
1 / 0
. Sendo assim, esse comportamento foi descontinuado.
Isso afeta o operador de exponenciação **
e a função pow().
Se a intenção for usar a semântica da IEEE 754, deve-se usar a nova função fpow().
_
como nome de classe
Nomear uma classe como _
foi descontinuado:
<?php
class _ {}
Nota:
Classes cujos nomes iniciam com um sublinhado não foram descontinuadas:
<?php
class _MyClass {}
E_USER_ERROR
Chamar trigger_error() com
error_level
igual a
E_USER_ERROR
foi descontinuado.
Tais usos devem ser substituídos pelo lançamento de uma exceção ou pela chamada a exit(), o que for mais apropriado.
A constante CURLOPT_BINARYTRANSFER
foi descontinuada.
A assinatura DatePeriod::__construct(string $isostr, int $options = 0)
foi descontinuada.
Use DatePeriod::createFromISO8601String() em seu lugar.
As constantes SUNFUNCS_RET_TIMESTAMP
,
SUNFUNCS_RET_STRING
,
e SUNFUNCS_RET_DOUBLE
foram descontinuadas.
Isto deriva da descontinuação das funções date_sunset() e
date_sunrise() no PHP 8.1.0.
Passar null
ou false
para dba_key_split() foi
descontinuado.
A funçao sempre retornará false
nesses casos.
A constante DOM_PHP_ERR
foi descontinuada.
As seguintes propriedades foram formalmente descontinuadas:
Passar opções inválidas para funções hash foi descontinuado.
Chamar a função intlcal_set() ou o método IntlCalendar::set() com mais de dois argumentos foi descontinuado. Use IntlCalendar::setDate() ou IntlCalendar::setDateTime() alternativamente.
Chamar a função intlgregcal_create_instance() ou o método IntlGregorianCalendar::__construct() com mais de dois argumentos foi descontinuado. Use IntlGregorianCalendar::createFromDate() ou IntlGregorianCalendar::createFromDateTime() alternativamente.
Chamar ldap_connect() com mais de dois argumentos foi descontinuado. Use ldap_connect_wallet() instead.
Chamar ldap_exop() com mais de quatro argumentos foi descontinuado. Use ldap_exop_sync() em seu lugar.
A função mysqli_ping() e o método mysqli::ping() foram descontinuados devido ao recurso de reconexão ter sido removido no PHP 8.2.0.
A função mysqli_kill() e o
método mysqli::kill()
foram descontinuados.
Se esta funcionalidade for necessária, um comando SQL KILL
pode ser usado alternativamente.
A função mysqli_refresh()
e o métodomysqli::refresh()
foram descontinuados.
Se esta funcionalidade for necessária, um comando SQL FLUSH
pode ser usado alternativamente.
Todas as constantes MYSQLI_REFRESH_*
também foram descontinuadas.
Passar explicitamente o parâmetro mode
a função mysqli_store_result() foi descontinuado.
Como a constante MYSQLI_STORE_RESULT_COPY_DATA
era
usada somente em conjunto com esta função, ela também foi descontinuada.
Usar pontos de interrogação escapados (??
) dentro de
strings envolvidas por cifrão foi descontinuado.
Como o PDO_PGSQL agora tem seu próprio analisador SQL com suporte a strings envolvidas
com cifrão, não é mais necessário escapar pontos de interrogação dentro delas.
As assinaturas de 2 argumentos das funções pg_fetch_result(),
pg_field_prtlen() e
pg_field_is_null() foram descontinuadas.
Alternativamente, devem ser usadas as assinaturas de 3 argumentos com row
definido para
null
.
lcg_value() foi descontinuada, já que esta função foi quebrada de várias maneiras. Alternativamente, o método Random\Randomizer::getFloat() deve ser usado.
Chamar ReflectionMethod::__construct() com um argumento foi descontinuado. Alternativamente, o método ReflectionMethod::createFromMethodName() deve ser usado.
Chamar session_set_save_handler() com mais de dois argumentos foi descontinuado. Alternativamente, a assinatura com dois argumentos deve ser usada.
Alterar o valor das configurações INI
session.sid_length
e
session.sid_bits_per_character
foi descontinuado.
Alternativamente, deve-se atualizar o mecanismo de armazenamento de sessão para aceitar
IDs de sessão hexadecimais de 32 caracteres e parar de alterar essas duas configurações INI.
Alterar o valor das configurações INI
session.use_only_cookies
,
session.use_trans_sid
,
session.trans_sid_tags
,
session.trans_sid_hosts
e
session.referer_check
foi descontinuado.
A constante SID
também foi descontinuada.
Passar um int para SoapServer::addFunction() foi descontinuado. Se todas as funções PHP precisarem ser fornecidas, converta o array multidimensional retornado por get_defined_functions() em um array unidimensional.
A constante SOAP_FUNCTIONS_ALL
foi descontinuada.
O método SplFixedArray::__wakeup() foi descontinuado, já que ele implementa SplFixedArray::__serialize() e SplFixedArray::__unserialize(), que precisam ser sobrescritos.
Usar o valor padrão para o parâmetro escape
para os métodos
SplFileObject::setCsvControl(),
SplFileObject::fputcsv() e
SplFileObject::fgetcsv() foi descontinuado.
Ele deve ser explicitamente passado, posicionalmente ou através de argumentos nomeados.
Isto não se aplica a SplFileObject::fputcsv()
e SplFileObject::fgetcsv() se
SplFileObject::setCsvControl() foi usado para definir um
novo valor padrão.
Chamar stream_context_set_option() com dois argumentos foi descontinuado. Alternativamente, a função stream_context_set_options() deve ser usada.
Desserializar strings usando a etiqueta S
maiúscula
com unserialize() foi descontinuado.
Usar o valor padrão para o parâmetro escape
para as funções
fputcsv(),
fgetcsv() e
str_getcsv() foi descontinuado.
Ele precisa ser explicitamente passado, posicionalmente ou através de argumentos nomeados.
A função xml_set_object() foi descontinuada.
Passar strings de tipo não-callable para as funções xml_set_()* foi descontinuado.