기타 변경 사항
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_INFO
및 PDO::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 파일 경로의 순진한 사용을 지원하기 위해 존재합니다.