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:
#[\AllowDynamicProperties]
à classe (que também se aplica a todas as classes filhas). 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"]
. "${var}"
e "${expr}"
Os estilos de interpolação de string "${var}"
e "${expr}"
foram preteridos. Use "$var"/"{$var}"
e "{${expr}}"
, respectivamente.
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().
O método interno SplFileInfo::_bad_state_ex() for preterido.
utf8_encode() e utf8_decode() foram preteridas.