PHP 8.2.x 더 이상 사용되지 않는 기능

PHP Core

Usage of dynamic properties

클래스가 #[\AllowDynamicProperties] 특성을 사용하여 선택하지 않는 한 동적 속성 생성은 더 이상 사용되지 않습니다. stdClass는 동적 속성을 허용합니다. __get()/__set() 매직 메서드의 사용은 이 변경 사항의 영향을 받지 않습니다. 동적 속성 사용 중단 경고는 다음을 통해 해결할 수 있습니다.

  • 속성 선언(선호).
  • #[\AllowDynamicProperties] 속성을 클래스에 추가합니다(모든 자식 클래스에도 적용됨).
  • 추가 데이터가 소유하지 않은 개체와 연결되어야 하는 경우 WeakMap을 사용합니다.

Relative callables

$callable() 구문에서 허용되지 않는 호출 가능 항목(그러나 call_user_func()에서는 허용됨)은 더 이상 사용되지 않습니다. 특히:

  • "self::method"
  • "parent::method"
  • "static::method"
  • ["self", "method"]
  • ["parent", "method"]
  • ["static", "method"]
  • ["Foo", "Bar::method"]
  • [new Foo, "Bar::method"]

이것은 "A::method" 또는 ["A", "method"]와 같은 일반적인 메서드 호출 가능 항목에는 영향을 미치지 않습니다.

"${var}""${expr}" style interpolation

"${var}""${expr}" 스타일의 문자열 보간은 더 이상 사용되지 않습니다. 각각 "$var"/"{$var}""{${expr}}"를 사용합니다.


MBString

QPrint, Base64, UuencodeHTML-ENTITIES '텍스트 인코딩'의 사용은 모든 MBString 함수에 대해 더 이상 사용되지 않습니다. MBString에서 지원하는 다른 모든 텍스트 인코딩과 달리 유니코드 코드포인트 시퀀스가 ​​아니라 원시 바이트 시퀀스를 인코딩합니다. 이러한 비인코딩 중 하나가 지정될 때 대부분의 MBString 함수에 대한 올바른 반환 값이 무엇이어야 하는지 명확하지 않습니다. 게다가 PHP는 이들 모두에 대한 별도의 내장 구현을 가지고 있습니다. 예를 들어 UUencoded 데이터는 convert_uuencode()/convert_uudecode()를 사용하여 처리할 수 있습니다.


SPL

내부 SplFileInfo::_bad_state_ex() 메서드는 더 이상 사용되지 않습니다.


Standard

utf8_encode()utf8_decode()는 더 이상 사용되지 않습니다.