더 이상 사용되지 않는 기능

PHP Core

Implementing Serializable without __serialize() and __unserialize()

버전 7.4 이전의 PHP에 대한 지원이 제공되지 않는 경우 새 메소드만 구현하거나 둘 다 구현해야 합니다.

Passing null to non-nullable parameters of built-in functions

기본 제공 함수의 스칼라 유형은 기본적으로 널 입력 가능하며, 이 동작은 스칼라 유형을 명시적으로 널 입력 가능으로 표시해야 하는 사용자 정의 함수의 동작과 일치하도록 더 이상 사용되지 않습니다.

                  
<?php
var_dump(str_contains("foobar", null));
// Deprecated: Passing null to parameter #2 ($needle) of type string
//             is deprecated
?>
                  
                

Implicit incompatible float to int conversions

float를 int로 암시적으로 변환하여 정밀도를 떨어뜨리는 것은 이제 더 이상 사용되지 않습니다. 이것은 배열 키, 강제 모드의 int 유형 선언 및 int에서 작업하는 연산자에 영향을 줍니다.

                  
<?php
$a = [];
$a[15.5]; // deprecated, as key value loses the 0.5 component
$a[15.0]; // ok, as 15.0 == 15
?>
                  
                

Calling a static element on a trait

정적 메서드를 호출하거나 트레이트에서 직접 정적 속성에 액세스하는 것은 더 이상 사용되지 않습니다. 정적 메서드와 속성은 특성을 사용하는 클래스에서만 액세스해야 합니다.

Returning a non-array from __sleep()

__sleep()에서 배열이 아닌 값을 반환하면 이제 진단이 생성됩니다.

Returning by reference from a void function

                  
<?php
function &test(): void {}
?>
                  
                

이러한 함수는 모순되며 호출될 때 이미 다음 E_NOTICE를 내보냅니다. 변수 참조만 참조로 반환되어야 합니다.

Autovivification from false

Autovivification은 값에 추가할 때 새 배열을 만드는 프로세스입니다. Autovivification은 스칼라 값에서 금지되지만 false는 예외였습니다. 이제 더 이상 사용되지 않습니다.

                  
<?php
$arr = false;
$arr[] = 2;   // deprecated
?>
                  
                

메모: null 및 undefined 값의 자동 생존은 여전히 ​​허용됩니다.

                    
  <?php
  // From undefined
  $arr[] = 'some value';
  $arr['doesNotExist'][] = 2;
  // From null
  $arr = null;
  $arr[] = 2;
  ?>
                    
                  

ctype

Verifying non-string arguments

문자열이 아닌 인수를 전달하는 것은 더 이상 사용되지 않습니다. 앞으로 인수는 ASCII 코드 포인트 대신 문자열로 해석됩니다. 의도한 동작에 따라 인수를 문자열로 캐스팅하거나 chr()을 명시적으로 호출해야 합니다. 모든 ctype_*() 함수가 영향을 받습니다.


Date

date_sunrise()date_sunset()date_sun_info()를 위해 더 이상 사용되지 않습니다.

strptime()은 더 이상 사용되지 않습니다. 대신 date_parse_from_format()(로캘 독립적 구문 분석의 경우) 또는 IntlDateFormatter::parse()(로캘 종속 구문 분석의 경우)를 사용합니다.

strftime()gmstrftime()은 더 이상 사용되지 않습니다. 대신 date()(로케일 독립적 구문 분석의 경우) 또는 IntlDateFormatter::format()(로케일 종속 구문 분석의 경우)을 사용하십시오.


Filter

FILTER_SANITIZE_STRINGFILTER_SANITIZE_STRIPPED 필터는 더 이상 사용되지 않습니다.

filter.default INI 지시문은 더 이상 사용되지 않습니다.


GD

imageopenpolygon()imagefilledpolygon()의 num_points는 더 이상 사용되지 않습니다.


Hash

mhash(), mhash_keygen_s2k(), mhash_count(), mhash_get_block_size()mhash_get_hash_name()은 더 이상 사용되지 않습니다. 대신 hash_*() 함수를 사용하십시오.


IMAP

NIL 상수는 더 이상 사용되지 않습니다. 대신 0을 사용하십시오.


Intl

bool 인수를 사용하여 IntlCalendar::roll()을 호출하는 것은 더 이상 사용되지 않습니다. truefalse 대신 각각 1-1을 사용합니다.


Multibyte String

인수 없이 mb_check_encoding()을 호출하는 것은 더 이상 사용되지 않습니다.


MySQLi

mysqli_driver::$driver_version 속성은 더 이상 사용되지 않습니다. 의미가 없고 구식입니다. 대신 PHP_VERSION_ID를 사용하세요.

mysqli 인수를 사용하여 mysqli::get_client_info() 또는 mysqli_get_client_info()를 호출하는 것은 더 이상 사용되지 않습니다. 클라이언트 라이브러리의 버전 정보를 얻으려면 인수 없이 mysqli_get_client_info()를 호출하십시오.

mysqli::init() 메소드는 더 이상 사용되지 않습니다. parent::init() 호출을 parent::__construct()로 교체하십시오.


OCI8

oci8.old_oci_close_semantics INI 지시문은 더 이상 사용되지 않습니다.


ODBC

odbc_result_all()은 더 이상 사용되지 않습니다.


PDO

PDO::FETCH_SERIALIZE 페치 모드는 더 이상 사용되지 않습니다.


PgSQL

모든 pgsql_*() 함수에 연결 인수를 전달하지 않는 것은 더 이상 사용되지 않습니다.


SOAP

SoapClient::__construct()ssl_method 옵션은 SSL 스트림 컨텍스트 옵션을 위해 더 이상 사용되지 않습니다.


Standard

객체에서 key(), current(), next(), prev(), reset() 또는 end()를 호출하는 것은 더 이상 사용되지 않습니다. 먼저 객체에 get_mangled_object_vars()를 사용하거나 ArrayIterator를 사용하십시오.

auto_detect_line_endings INI 지시문은 더 이상 사용되지 않습니다. 필요한 경우 "\r" 줄 바꿈을 대신 수동으로 처리하십시오.

FILE_BINARYFILE_TEXT 상수는 더 이상 사용되지 않습니다. 그들은 효과가 없었습니다.