PHP7.3 기타 변경 사항

PHP Core

Set(raw)cookie accepts $option Argument

setcookie()setrawcookie()는 이제 다음 서명도 지원합니다.

setcookie(string $name, string $value = "", array $options = []): bool
                

여기서 $options는 "만료", "경로", "도메인", "보안", "httponly" 및 "samesite" 키 중 하나를 가질 수 있는 연관 배열입니다.

New Syslog ini Directives

error_log가 syslog로 설정된 경우 로깅을 사용자 정의하기 위해 다음 ini 지시문이 추가되었습니다.

    syslog.facility
    메시지를 기록하는 프로그램 유형을 지정합니다.
    syslog.filter
    지원되는 필터 유형(all, no-ctrl 및 ascii)을 사용하여 기록된 메시지를 필터링할 필터 유형을 지정합니다. PHP 7.3.8부터 raw도 사용할 수 있어 이전 PHP 버전에서 syslog가 작동하는 방식을 복원합니다. 이 필터는 syslog() 호출에도 영향을 미칩니다.
    syslog.ident
    모든 메시지에 추가되는 ident 문자열을 지정합니다.

Garbage Collection

순환 GC가 향상되어 성능이 크게 향상될 수 있습니다.

Miscellaneous

var_export()는 이제 존재하지 않는 메서드 stdClass::__setState()를 사용하는 대신 stdClass 객체를 객체((객체) array( ... ))로 캐스팅된 배열로 내보냅니다.

debug_zval_dump()var_dump()와 같은 방식으로 재귀 배열과 객체를 표시하도록 변경되었습니다. 이제 두 번 표시하지 않습니다.

array_push()array_unshift()는 이제 단일 인수로 호출할 수도 있으며, 이는 특히 편리한 wrt입니다. 스프레드 연산자.


Interactive PHP Debugger

사용하지 않는 상수 PHPDBG_FILE, PHPDBG_METHOD, PHPDBG_LINENO 및 PHPDBG_FUNC가 제거되었습니다.


FastCGI Process Manager

이제 getallheaders() 함수도 사용할 수 있습니다.


Client URL Library

libcurl ≥ 7.15.5가 이제 필요합니다.


Data Filtering

FILTER_VALIDATE_FLOAT는 이제 허용되는 천 단위 구분 기호 집합을 정의하는 천 단위 옵션도 지원합니다. 기본값("',.")은 이전 PHP 버전과 완벽하게 역호환됩니다.

FILTER_SANITIZE_ADD_SLASHES가 magic_quotes 필터의 별칭(FILTER_SANITIZE_MAGIC_QUOTES)으로 추가되었습니다. magic_quotes 필터는 향후 PHP 버전에서 제거될 수 있습니다.


FTP

기본 전송 모드가 바이너리로 변경되었습니다.


Internationalization Functions

Normalizer::NONE은 PHP가 ICU ≥ 56과 연결된 경우 더 이상 사용되지 않습니다.

NFKC_Casefold 정규화를 위한 Normalizer::normalize() 인수로 Normalizer::FORM_KC_CF를 도입했습니다. ICU ≥ 56과 연결된 경우 사용 가능.


JavaScript Object Notation

JSON_THROW_ON_ERROR라는 새 플래그가 추가되었습니다. 이 플래그는 json_decode() 또는 json_encode()와 함께 사용할 수 있으며 이러한 함수는 json_last_error()json_last_error_msg()로 검색되는 전역 오류 상태를 설정하는 대신 오류 발생 시 새 JsonException을 throw합니다. (). JSON_PARTIAL_OUTPUT_ON_ERROR가 JSON_THROW_ON_ERROR보다 우선합니다.


Multibyte String

구성 옵션 --with-libmbfl은 더 이상 사용할 수 없습니다.


ODBC (Unified)

Birdstep.max_links ini 지시문을 포함하여 ODBCRouter 및 Birdstep에 대한 지원이 제거되었습니다.


OPcache

opcache.inherited_hack ini 지시문이 제거되었습니다. 이 값은 PHP 5.3.0부터 이미 무시되었습니다.


OpenSSL

min_proto_version 및 max_proto_version ssl 스트림 옵션과 가능한 TLS 프로토콜 값에 대한 관련 상수가 추가되었습니다.


Regular Expressions (Perl-Compatible)

PCRE 확장이 PCRE2로 업그레이드되어 약간의 동작 변경(예: 클래스의 문자 범위가 더 엄격하게 해석됨)이 발생할 수 있으며 기존 정규식 구문이 확장됩니다.

preg_quote()는 이제 '#' 문자도 이스케이프합니다.


Microsoft SQL Server and Sybase Functions (PDO_DBLIB)

빈 행 집합을 자동으로 건너뛸 수 있도록 PDO::DBLIB_ATTR_SKIP_EMPTY_ROWSETS 특성이 추가되었습니다.

TDS 버전을 노출하는 PDO::DBLIB_ATTR_TDS_VERSION 속성이 추가되었습니다.

DATETIME2 열은 이제 DATETIME 열처럼 처리됩니다.


SQLite Functions (PDO_SQLITE)

PDO::SQLITE_ATTR_OPEN_FLAGS 속성을 PDO::SQLITE_OPEN_READONLY로 설정하여 SQLite3 데이터베이스를 읽기 전용 모드로 열 수 있습니다.


Session Handling

session_set_cookie_params()는 이제 다음 서명도 지원합니다.

session_set_cookie_params(array $options): bool
                

여기서 $options는 "lifetime", "path", "domain", "secure", "httponly" 및 "samesite" 키 중 하나를 가질 수 있는 연관 배열입니다. 따라서 session_get_cookie_params()의 반환 값에는 이제 "samesite" 키가 있는 요소도 있습니다. 또한 쿠키에 대한 SameSite 지시문 기본값을 설정하는 새로운 session.cookie_samesite ini 옵션이 추가되었습니다. 기본값은 ""(빈 문자열)이므로 SameSite 지시문이 설정되지 않습니다. 각각의 SameSite 지시문을 설정하는 "Lax" 또는 "Strict"로 설정할 수 있습니다.


Tidy

» tidyp에 대한 빌드도 이제 투명하게 지원됩니다. Tidyp는 릴리스 날짜를 가져오는 API를 제공하지 않으므로, 이 경우 Tidy_get_release()tint::getRelease()는 '알 수 없음'을 반환합니다.


XML Parser

확장이 libxml에 대해 빌드된 경우 xml_set_external_entity_ref_handler() 콜백의 반환 값이 더 이상 무시되지 않습니다. 이전에는 반환 값이 무시되었으며 구문 분석이 중단되지 않았습니다.


Zip

번들 libzip에 대해 빌드하는 것은 권장되지 않지만 구성에 --without-libzip을 추가하여 여전히 가능합니다.


Zlib Compression

원하는 압축 수준 설정을 용이하게 하기 위해 compress.zlib 래퍼에 대한 zlib/level 컨텍스트 옵션이 추가되었습니다.