기타 변경 사항
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
- ZipArchive::addGlob() 및 ZipArchive::addPattern() 메서드는
options
배열 인수에서 더 많은 값을 허용합니다.-
flags
-
comp_method
-
comp_flags
-
env_method
-
enc_password
-
- ZipArchive::addEmptyDir(), ZipArchive::addFile() 및 ZipArchive::addFromString() 메서드에는 새
플래그
인수가 있습니다. 이를 통해 이름 인코딩(ZipArchive::FL_ENC_*
) 및 항목 교체(ZipArchive::FL_OVERWRITE
)를 관리할 수 있습니다. - ZipArchive::extractTo()는 이제 파일 수정 시간을 복원합니다.
확장에 대한 기타 변경 사항
CURL
- CURL 확장에는 이제 libcurl 7.29.0 이상이 필요합니다.
- curl_version()의 더 이상 사용되지 않는 매개변수
version
이 제거되었습니다.
날짜와 시간
DatePeriod는 이제 Traversable 대신 IteratorAggregate를 구현합니다.
DOM
DOMNamedNodeMap 및 DOMNodeList는 이제 IteratorAggregate(Traversable 대신)를 구현합니다.
Intl
IntlBreakIterator 및 ResourceBundle은 이제 IteratorAggregate(Traversable 대신)를 구현합니다.
Enchant
인챈트 확장은 이제 사용 가능한 경우 기본적으로 libenchant-2를 사용합니다. libenchant 버전 1은 계속 지원되지만 더 이상 사용되지 않으며 향후 제거될 수 있습니다.
GD
- imagepolygon(), imageopenpolygon() 및 imagefilledpolygon()의
num_points
매개변수는 이제 선택 사항입니다. 즉, 이러한 함수는 3개 또는 4개의 인수로 호출될 수 있습니다. 인수를 생략하면count($points)/2
로 계산됩니다. - 현재 보간 방법을 가져오는 함수 imagegetinterpolation()이 추가되었습니다.
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의 기능을 흡수합니다. SimpleXMLIterator는 SimpleXMLElement의 빈 확장입니다.
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 구현을 사용합니다.