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