Funcionalidades Preteridas
PHP Core
Uso de propriedades dinâmicas
A criação de propriedades dinâmicas foi preterida a menos que a classe a ative
usando o atributo #[\AllowDynamicProperties]
.
stdClass permite propriedades dinâmicas.
O uso dos métodos mágicos __get()/__set() não é afetado por essa mudança.
Um aviso de descontinuação de propriedades dinâmicas pode ser abordado das seguintes maneiras:
- Declarando a propriedade (preferido).
-
Adicionando o atributo
#[\AllowDynamicProperties]
à classe (que também se aplica a todas as classes filhas). - Usando um WeakMap se dados adicionais precisarem ser associados a um objeto ao qual não se detém posse.
Chamáveis relativos
Chamáveis que não são aceitos pela sintaxe $callable()
(mas são aceitos por call_user_func()) foram preteridos.
Em particular:
"self::method"
"parent::method"
"static::method"
["self", "method"]
["parent", "method"]
["static", "method"]
["Foo", "Bar::method"]
[new Foo, "Bar::method"]
"A::method"
ou ["A", "method"]
.
Estilo de interpolação "${var}"
e "${expr}"
Os estilos de interpolação de string "${var}"
e "${expr}"
foram preteridos.
Use "$var"/"{$var}"
e "{${expr}}"
, respectivamente.
MBString
O uso das 'codificações de texto' QPrint
, Base64
,
Uuencode
, e HTML-ENTITIES
foi preterido para todas as funções de MBString.
Diferente das outras codificações de texto suportadas pela MBString,
essas não codificam a sequência de pontos de código Unicode, mas sim uma sequência de bytes brutos.
Não está claro quais deveriam ser os valores de devolução corretos para a maioria das funções de MBString
quando uma dessas não-codificações é especificada.
Além disso, o PHP possui implementações separadas, embutidas, para todas elas;
por exemplo, dados UUencoded podem ser manipulados utilizando
convert_uuencode()/convert_uudecode().
SPL
O método interno SplFileInfo::_bad_state_ex() for preterido.
Biblioteca Padrão
utf8_encode() e utf8_decode() foram preteridas.