PHP 8.2.x 이전 버전과 호환되지 않는 변경 사항

Date

DateTime::createFromImmutable()은 이제 이전에는 DateTime이던 정적 반환 유형을 임시 반환합니다.

DateTimeImmutable::createFromMutable()에는 이전에 DateTimeImmutable이었던 잠정 반환 유형이 이제 정적입니다.


ODBC

ODBC 확장은 이제 연결 문자열과 사용자 이름/암호가 모두 전달되고 문자열을 추가해야 하는 경우 사용자 이름과 암호를 이스케이프합니다. 이전에는 이스케이프가 필요한 값을 포함하는 사용자 값이 잘못된 연결 문자열을 생성하거나 사용자가 제공한 데이터에서 값을 주입할 수 있었습니다. 이스케이프 규칙은 .NET BCL DbConnectionOptions 동작과 동일해야 합니다.


PDO_ODBC

PDO_ODBC 확장은 또한 연결 문자열이 전달될 때 사용자 이름과 암호를 이스케이프합니다. 자세한 내용은 ODBC 확장에 대한 변경 사항을 참조하십시오.


Standard

모든 경로가 open_basedir에 의해 제한되는 경우 glob()은 이제 빈 배열을 반환합니다. 이전에는 false를 반환했습니다. 게다가 이제 일부 경로만 open_basedir에 의해 제한되더라도 경고가 발생합니다.

strtolower(), strtoupper(),stristr(), stripos(),strripos(), lcfirst(), ucfirst(), ucwords()str_ireplace()는 더 이상 로케일을 구분하지 않습니다. 이제 로케일이 "C"인 것처럼 ASCII 대소문자 변환을 수행합니다. 이러한 함수의 지역화된 버전은 MBString extension에서 사용할 수 있습니다. 또한 array_change_key_case()SORT_FLAG_CASE를 사용한 정렬도 이제 ASCII 대소문자 변환을 사용합니다.

str_split()은 이제 빈 문자열에 대해 빈 배열을 반환합니다. 이전에는 단일 빈 문자열 항목이 있는 배열을 반환했습니다. mb_str_split()은 이미 그렇게 동작하고 있었기 때문에 이 변경의 영향을 받지 않습니다.

ksort()krsort()는 이제 표준 PHP 8 규칙을 사용하여 SORT_REGULAR에서 숫자 문자열 비교를 수행합니다.


Standard PHP Library (SPL)

다음 메서드는 이제 서명을 적용합니다.

SplFileObject::hasChildren()은 이제 잠정적 반환 유형인 false를 가집니다. 이전에는 bool이었습니다.

SplFileObject::getChildren()에는 이전에 ?RecursiveIterator였던 잠정 반환 유형이 null입니다.

모든 경로가 open_basedir에 의해 제한되는 경우 GlobIterator는 이제 빈 배열을 반환합니다. 이전에는 false를 반환했습니다. 게다가 이제 일부 경로만 open_basedir에 의해 제한되더라도 경고가 발생합니다.