기타 변경 사항

Changes in SAPI Modules

CLI

readline 확장 없이 -a를 사용하면 이제 오류가 발생합니다. 이전에는 readline이 없는 -a는 추가 "Interactive mode enabled" 메시지를 인쇄하는 것을 제외하고는 인수 없이 php를 호출하는 것과 동일한 동작을 했습니다. 이 모드는 대화형이 아닙니다.


PHPDBG

phpdbg에서 원격 기능이 제거되었습니다.


Changed Functions

Core

foreach, var_dump(), serialize(), 객체 비교 등에 사용되는 속성의 순서가 변경되었습니다. 속성은 이제 선언 및 상속에 따라 자연스럽게 정렬됩니다. 기본 클래스에서 선언된 속성은 자식 속성보다 먼저 표시됩니다.

이 순서는 zend_object 구조의 속성 내부 레이아웃과 일치하며 default_properties_table[]properties_info_table[]의 순서를 반복합니다. 이전 순서는 문서화되지 않았으며 클래스 상속 구현 세부 정보로 인해 발생했습니다.

Filter

FILTER_VALIDATE_INT 필터의 FILTER_FLAG_ALLOW_OCTAL 플래그는 이제 선행 8진수 접두사("0o"/"0O")가 있는 8진수 문자열을 허용합니다.

GMP

모든 GMP 함수는 이제 선행 8진수 접두사("0o"/"0O")가 있는 8진수 문자열을 허용합니다.

PDO ODBC

PDO::ATTR_SERVER_INFOPDO::ATTR_SERVER_VERSION이 있는 는 이제 PDOException을 발생시키는 대신 값을 반환합니다.

Reflection

ReflectionProperty::setAccessible()ReflectionMethod::setAccessible()은 더 이상 효과가 없습니다. 속성 및 메서드는 이제 항상 Reflection을 통해 액세스할 수 있는 것으로 간주됩니다.

Standard

syslog()는 이제 바이너리 안전합니다.


Other Changes to Extensions

GD

imagewebp()는 이제 IMG_WEBP_LOSSLESS를 품질로 전달하여 무손실 WebP 인코딩을 수행할 수 있습니다.

이 상수는 사용된 libgd가 무손실 WebP 인코딩을 지원하는 경우에만 정의됩니다.

MySQLi

mysqli_stmt::next_result()mysqli::fetch_all()은 이제 libmysqlclient에 대해 링크할 때 사용할 수 있습니다.

OpenSSL

  • 이제 OpenSSL 확장에는 최소한 OpenSSL 버전 1.0.2가 필요합니다.
  • 이제 OpenSSL 3.0이 지원됩니다. 많은 암호가 더 이상 기본적으로 활성화되지 않으며(레거시 공급자의 일부) 해당 매개변수 유효성 검사(예: 최소 키 크기)가 이제 더 엄격해집니다.

Phar

  • SHA256은 이제 기본적으로 서명에 사용됩니다.
  • OpenSSL_SHA256 및 OpenSSL_SHA512 서명에 대한 지원이 추가되었습니다.

SNMP

  • 보안 프로토콜에 대한 SHA256 및 SHA512 지원이 추가되었습니다.

Standard

--with-password-argon2는 이제 pkg-config를 사용하여 libargon2를 감지합니다. 따라서 이제 PKG_CONFIG_PATH를 사용하여 대체 libargon2 위치를 지정해야 합니다.


Changes to INI File Handling

  • log_errors_max_len INI 지시문이 제거되었습니다. PHP 8.0.0 이후로 더 이상 효과가 없었습니다.
  • 따옴표로 묶인 문자열의 선행 달러는 이제 이스케이프 처리될 수 있습니다. "\${"는 이제 내용이 ${인 문자열로 해석됩니다.
  • 큰 따옴표로 묶인 문자열의 백슬래시는 이제 이스케이프 문자로 더 일관되게 처리됩니다. 이전에는 "foo\\" 다음에 개행이 아닌 다른 것이 오는 것은 종료된 문자열로 간주되지 않았습니다. 이제 내용이 foo\인 문자열로 해석됩니다. 그러나 예외적으로 문자열 "foo\" 다음에 줄 바꿈이 오는 것은 종료되지 않은 문자열이 아니라 foo\ 내용이 포함된 유효한 문자열로 계속 처리됩니다. 이 예외는 "C:\foo\"와 같은 Windows 파일 경로의 순진한 사용을 지원하기 위해 존재합니다.