phpday 2022

Funcionalidades depreciadas

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á 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
?>

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á 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 o elemento static em um trait

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 não-array da __sleep()

Retornar um valor que não é um array da __sleep() agora gera um diagnóstico.

Retornar por referencia de uma função void

<?php
function &test(): void {}
?>
Essa função é contraditória, e já emite o seguinte 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á 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;
?>

ctype

Verificar argumentos não-string

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.

Data

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).

Filtros

Os filtros FILTER_SANITIZE_STRING e FILTER_SANITIZE_STRIPPED estão depreciados.

A diretiva INI filter.default está depreciada.

GD

O num_points da imageopenpolygon() e imagefilledpolygon() foram depreciados.

Hash

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.

IMAP

A constante NIL foi depreciada. Use 0 em vez dela.

Intl

Chamar IntlCalendar::roll() com um argumento bool está depreciado. Use 1 e -1 em vez de true e false respectivamente.

Multibyte String

Chamar mb_check_encoding() sem argumentos está depreciado.

MySQLi

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().

OCI8

A diretiva INI oci8.old_oci_close_semantics está depreciada.

ODBC

odbc_result_all() foi depreciada.

PDO

O modo de busca PDO::FETCH_SERIALIZE foi depreciado.

PgSQL

Não passar o argumento de conexão para todas as funções pgsql_*() foi depreciado.

SOAP

A opção ssl_method do SoapClient::__construct() foi depreciada em favor das opções de contexto de stream SSL.

Biblioteca Padrão

Chamar key(), current(), next(), prev(), reset(), ou end() em objects está depreciado. Use get_mangled_object_vars() no objeto primeiro, ou use 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.

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top