기타 변경 사항

Changes in SAPI Modules

Apache2Handler

PHP 모듈의 이름이 php7_module에서 php_module로 변경되었습니다.


변경된 함수

Reflection

ReflectionClass::getConstants()ReflectionClass::getReflectionConstants() 결과는 이제 새 매개변수 filter를 통해 필터링할 수 있습니다. 함께 사용하기 위해 세 가지 새로운 상수가 추가되었습니다.

  • ReflectionClassConstant::IS_PUBLIC
  • ReflectionClassConstant::IS_PROTECTED
  • ReflectionClassConstant::IS_PRIVATE

Standard

수학 함수 abs(), ceil(), floor() 및 round()는 이제 strict_types 지시문을 적절하게 따릅니다. 이전에는 엄격한 유형 모드에서도 첫 번째 인수를 강제 변환했습니다.

Zip


확장에 대한 기타 변경 사항

CURL


  • CURL 확장에는 이제 libcurl 7.29.0 이상이 필요합니다.
  • curl_version()의 더 이상 사용되지 않는 매개변수 version이 제거되었습니다.

날짜와 시간

DatePeriod는 이제 Traversable 대신 IteratorAggregate를 구현합니다.

DOM

DOMNamedNodeMapDOMNodeList는 이제 IteratorAggregate(Traversable 대신)를 구현합니다.

Intl

IntlBreakIteratorResourceBundle은 이제 IteratorAggregate(Traversable 대신)를 구현합니다.

Enchant

인챈트 확장은 이제 사용 가능한 경우 기본적으로 libenchant-2를 사용합니다. libenchant 버전 1은 계속 지원되지만 더 이상 사용되지 않으며 향후 제거될 수 있습니다.

GD

JSON

JSON 확장은 더 이상 비활성화할 수 없으며 날짜 확장과 마찬가지로 항상 모든 PHP 빌드의 필수 부분입니다.

MBString

유니코드 데이터 테이블이 버전 13.0.0으로 업데이트되었습니다.

PDO

PDOStatement는 이제 IteratorAggregate(Traversable 대신)를 구현합니다.

LibXML

최소 필수 libxml 버전은 이제 2.9.0입니다. 즉, 이제 외부 엔터티 로드가 기본적으로 비활성화되어 있으며 XXE 공격으로부터 보호하기 위해 추가 단계를 수행할 필요가 없습니다.

MySQLi / PDO MySQL

  • mysqlnd가 사용되지 않는 경우(기본 및 권장 옵션), 지원되는 최소 libmysqlclient 버전은 이제 5.5입니다.
  • mysqli_result는 이제 IteratorAggregate(Traversable 대신)를 구현합니다.

PGSQL / PDO PGSQL

PGSQL 및 PDO PGSQL 확장에는 이제 libpq 9.1 이상이 필요합니다.

Readline

대화형 프롬프트가 시작되기 전에 readline_completion_function()을 호출하면(예: auto_prepend_file에서) 이제 기본 대화형 프롬프트 완성 기능을 무시합니다. 이전에는 readline_completion_function()이 대화형 프롬프트를 시작한 후 호출될 때만 작동했습니다.

SimpleXML

SimpleXMLElement는 이제 RecursiveIterator를 구현하고 SimpleXMLIterator의 기능을 흡수합니다. SimpleXMLIteratorSimpleXMLElement의 빈 확장입니다.


INI 파일 처리에 대한 변경 사항

  • com.dotnet_version은 dotnet 개체에 사용할 .NET 프레임워크 버전을 선택하기 위한 새로운 INI 지시문입니다.
  • zend.exception_string_param_max_len은 문자열화된 스택 추적의 인수에서 최대 문자열 길이를 설정하는 새로운 INI 지시문입니다.

EBCDIC

EBCDIC 대상은 더 이상 지원되지 않지만 처음부터 계속 작동했을 가능성은 거의 없습니다.


Performance

  • JIT(Just-In-Time) 컴파일러가 opcache 확장에 추가되었습니다.
  • 간격이 없는 배열의 array_slice()는 더 이상 시작 오프셋을 찾기 위해 전체 배열을 스캔하지 않습니다. 이렇게 하면 오프셋이 크고 길이가 작은 함수의 런타임이 크게 줄어들 수 있습니다.
  • strtolower()는 이제 "C" LC_CTYPE 로케일(기본값)을 사용할 때 SIMD 구현을 사용합니다.