Changelog

The following changes have been made to functions of bundled extensions.

VersionFunctionDescription
8.4.0DOMDocument::registerNodeClassDOMDocument::registerNodeClass now has a tentative return of true.
 DOMImplementation::createDocumentThe function now has the tentative return type DOMDocument.
 DOMXPath::registerPhpFunctionsIt is now possible to use callables for callbacks when using restrict with array entries.
 bcpowNegative powers of 0 previously returned 0, but now throw a DivisionByZeroError exception.
 bind_textdomain_codesetNow throws a ValueError if domain is the empty string.
 curl_getinfoIntroduced CURLINFO_POSTTRANSFER_TIME_T constant and posttransfer_time_us (Curl 8.10.0 or later).
 curl_multi_selectNow throws a ValueError if timeout is less than 0 or greater than PHP_INT_MAX.
 curl_setoptCURLOPT_DNS_USE_GLOBAL_CACHE no longer has any effect, and enabling it on thread-safe PHP builds no longer triggers a warning.
 curl_versionfeatures_list added.
 dba_closeThe dba parameter expects a Dba\Connection instance now; previously, a valid dba resource was expected.
 dba_deleteThe dba parameter expects a Dba\Connection instance now; previously, a valid dba resource was expected.
 dba_existsThe dba parameter expects a Dba\Connection instance now; previously, a valid dba resource was expected.
 dba_fetchThe dba parameter expects a Dba\Connection instance now; previously, a valid dba resource was expected.
 dba_firstkeyThe dba parameter expects a Dba\Connection instance now; previously, a valid dba resource was expected.
 dba_insertThe dba parameter expects a Dba\Connection instance now; previously, a valid dba resource was expected.
 dba_key_splitPassing null or false to key is now deprecated.
 dba_nextkeyThe dba parameter expects a Dba\Connection instance now; previously, a valid dba resource was expected.
 dba_openReturns a Dba\Connection instance now; previously, a resource was returned.
 dba_optimizeThe dba parameter expects a Dba\Connection instance now; previously, a valid dba resource was expected.
 dba_popenReturns a Dba\Connection instance now; previously, a resource was returned.
 dba_replaceThe dba parameter expects a Dba\Connection instance now; previously, a valid dba resource was expected.
 dba_syncThe dba parameter expects a Dba\Connection instance now; previously, a valid dba resource was expected.
 dgettextNow throws a ValueError if domain is the empty string.
 dngettextNow throws a ValueError if domain is the empty string.
 exitexit is now a proper function, therefore it follows the usual type juggling semantics is affected by the strict_types declare, can be called with named arguments, and be a variable functions.
 fgetcsvRelying on the default value of escape is now deprecated.
 flushFlushing headers without a body will now succeed in FastCGI.
 fputcsvRelying on the default value of escape is now deprecated.
 hash_initPassing options of a wrong type is now deprecated.
 hash_updateNow has a return type of true instead of bool.
 highlight_stringReturn type changed from stringbool to stringtrue.
 imageavifNow throws a ValueError if quality or speed is invalid.
 imagefilterNow throws a ValueError if sub or plus would cause over-/underflow with the IMG_FILTER_SCATTER filter.
 imagejpegNow throws a ValueError if quality is invalid.
 imagepngNow throws a ValueError if quality is invalid.
 imagescaleNow throws a ValueError if width or height would cause over-/underflow.
 imagescaleNow throws a ValueError if mode is invalid.
 imagewebpNow throws a ValueError if quality is invalid.
 lcg_valueThis function has been deprecated.
 libxml_set_streams_contextlibxml_set_streams_context now throws a TypeError when a non-stream resource is passed to context, instead of throwing later when the context is used.
 long2ipReturn type changed from stringfalse to string.
 php_unameThrows a ValueError when an invalid mode is specified.
 powRaising 0 to a negative exponent is now deprecated.
 print_rReturn type changed from stringbool to stringtrue.
 simplexml_import_domThis function now throws a TypeError instead of a ValueError when passed a non-XML or non-HTML node.
 socket_create_listenThe default value of is now SOMAXCONN. Previously it was 128.
 str_getcsvRelying on the default value of escape is now deprecated.
 str_getcsvNow throws a ValueError if separator, enclosure, or escape is invalid. This mimics the behavior of fgetcsv and fputcsv.
 strcspnPrior to PHP 8.4.0, when characters was the empty string, the search would incorrectly stop at the first null byte in string.
 stream_context_set_optionThe alternative 2-parameter signature is now deprecated. Use stream_context_set_options instead.
 textdomainNow throws a ValueError if domain is the empty string.
 trigger_errorPassing E_USER_ERROR as the error_level is now deprecated. Throw an Exception or call exit instead.
 trigger_errorThe function now has a return type of true instead of bool.
 xml_parser_set_optionAdded the option XML_OPTION_PARSE_HUGE.
 xml_set_character_data_handlerPassing a non-callable string to handler is now deprecated, use a proper callable for methods, or null to reset the handler.
 xml_set_character_data_handlerThe validity of handler as a callable is now checked when setting the handler instead of checking when calling it.
 xml_set_default_handlerPassing a non-callable string to handler is now deprecated, use a proper callable for methods, or null to reset the handler.
 xml_set_default_handlerThe validity of handler as a callable is now checked when setting the handler instead of checking when calling it.
 xml_set_element_handlerPassing a non-callable string to handler is now deprecated, use a proper callable for methods, or null to reset the handler.
 xml_set_element_handlerThe validity of handler as a callable is now checked when setting the handler instead of checking when calling it.
 xml_set_end_namespace_decl_handlerPassing a non-callable string to handler is now deprecated, use a proper callable for methods, or null to reset the handler.
 xml_set_end_namespace_decl_handlerThe validity of handler as a callable is now checked when setting the handler instead of checking when calling it.
 xml_set_external_entity_ref_handlerPassing a non-callable string to handler is now deprecated, use a proper callable for methods, or null to reset the handler.
 xml_set_external_entity_ref_handlerThe validity of handler as a callable is now checked when setting the handler instead of checking when calling it.
 xml_set_notation_decl_handlerPassing a non-callable string to handler is now deprecated, use a proper callable for methods, or null to reset the handler.
 xml_set_notation_decl_handlerThe validity of handler as a callable is now checked when setting the handler instead of checking when calling it.
 xml_set_objectThis function is now deprecated, instead pass proper callable values to xml_set_
 xml_set_processing_instruction_handlerPassing a non-callable string to handler is now deprecated, use a proper callable for methods, or null to reset the handler.
 xml_set_processing_instruction_handlerThe validity of handler as a callable is now checked when setting the handler instead of checking when calling it.
 xml_set_start_namespace_decl_handlerPassing a non-callable string to handler is now deprecated, use a proper callable for methods, or null to reset the handler.
 xml_set_start_namespace_decl_handlerThe validity of handler as a callable is now checked when setting the handler instead of checking when calling it.
 xml_set_unparsed_entity_decl_handlerPassing a non-callable string to handler is now deprecated, use a proper callable for methods, or null to reset the handler.
 xml_set_unparsed_entity_decl_handlerThe validity of handler as a callable is now checked when setting the handler instead of checking when calling it.
 mysqli::killBoth mysqli::kill and mysqli_kill are now deprecated. Use the KILL SQL command instead.
 mysqli::pingBoth mysqli::ping and mysqli_ping are now deprecated. The reconnect feature has not been available as of PHP 8.2.0, making this function obsolete.
 mysqli::refreshBoth mysqli::refresh and mysqli_refresh are now deprecated. Use FLUSH SQL commands instead.
 mysqli::store_resultPassing the mode parameter is now deprecated. The parameter has had no effect as of PHP 8.1.0.
 Phar::setAliasPhar::setAlias now has a tentative return of true.
 Phar::setDefaultStubPhar::setDefaultStub now has a tentative return of true.
 ReflectionClassConstant::__toStringThe attached doc comment is now included.
 ReflectionGenerator::getFunctionReflectionGenerator::getFunction may now be called after the generator finished executing.
 ReflectionProperty::__toStringThe attached doc comment is now included.
 SplFileObject::fgetcsvRelying on the default value of escape is now deprecated.
 SplFileObject::fputcsvRelying on the default value of escape is now deprecated.
 SplFileObject::setCsvControlRelying on the default value of escape is now deprecated.
 SplFixedArray::setSizeSplFixedArray::setSize now has a tentative return of true.
 SplFixedArray::__wakeupThis method is now deprecated, use SplFixedArray::__unserialize instead.
 SplHeap::insertSplHeap::insert now has a tentative return of true.
 SplHeap::recoverFromCorruptionSplHeap::recoverFromCorruption now has a tentative return of true.
 SplPriorityQueue::insertSplPriorityQueue::insert now has a tentative return of true.
 SplPriorityQueue::recoverFromCorruptionSplPriorityQueue::recoverFromCorruption now has a tentative return of true.
 tidy::__constructFailures when executing the constructor now throw instead of silently creating an unusable object.
 XMLReader::openPassing an invalid encoding will now throw a ValueError.
 XMLReader::XMLPassing an invalid encoding will now throw a ValueError.
 XMLWriter::startDocumentPassing an encoding containing null bytes will now throw a ValueError.
 XSLTProcessor::importStylesheetNow throws a TypeError instead of a ValueError if stylesheet is not an XML object.
 XSLTProcessor::registerPHPFunctionsIt is now possible to use callables for callbacks when using restrict with array entries.
 XSLTProcessor::setParameterNow throws a ValueError if any of the arguments contain null bytes instead of silently truncating.
 XSLTProcessor::setParameterIt is now possible to set a parameter value containing both single and double quotes. Prior to PHP 8.4.0, this resulted in a warning.
8.3.0DateInterval::__constructNow throws DateMalformedIntervalStringException instead of Exception.
 DatePeriod::__constructNow throws DateMalformedPeriodStringException instead of Exception.
 DateTime::__constructNow throws DateMalformedStringException if an invalid string is passed, instead of Exception.
 DateTimeInterface::getTimestampThe out-of-range exception is now DateRangeError.
 DateTime::modifyNow throws DateMalformedStringException with DateTime::modify if an invalid string is passed, instead of a warning. date_modify has not been changed.
 DateTime::subNow throws a DateInvalidOperationException with DateTime::sub, instead of a warning when an unsupported operation is attempted. date_sub has not been changed.
 DateTimeImmutable::__constructNow throws DateMalformedStringException if an invalid string is passed, instead of Exception.
 DateTimeImmutable::modifyNow throws DateMalformedStringException if an invalid string is passed, instead of a warning.
 DateTimeImmutable::subNow throws a DateInvalidOperationException instead of a warning when an unsupported operation is attempted.
 DateTimeZone::__constructInvalid values now return a DateInvalidTimeZoneException instead of a generic Exception.
 DOMCharacterData::afterCalling this method on a node without a parent is now a no-op to align the behaviour with the DOM specification. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.
 DOMCharacterData::afterCalling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.
 DOMCharacterData::appendDataThis function now has a tentative true return type.
 DOMCharacterData::beforeCalling this method on a node without a parent is now a no-op to align the behaviour with the DOM specification. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.
 DOMCharacterData::replaceWithCalling this method on a node without a parent is now a no-op to align the behaviour with the DOM specification. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.
 DOMChildNode::afterCalling this method on a node without a parent is now a no-op to align the behaviour with the DOM specification. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.
 DOMChildNode::afterCalling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.
 DOMChildNode::beforeCalling this method on a node without a parent is now a no-op to align the behaviour with the DOM specification. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.
 DOMChildNode::replaceWithCalling this method on a node without a parent is now a no-op to align the behaviour with the DOM specification. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.
 DOMDocument::appendCalling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.
 DOMDocument::createAttributeNSCalling this method without specifying a prefix will now choose a prefix instead of assuming the default namespace. Previously this would create an attribute without a prefix and incorrectly apply the namespace to the owner element because default namespaces don't apply on attributes.
 DOMDocument::createAttributeNSCalling this method using a prefix that was already declared on the owner element with a different namespace URI will now change the new prefix to avoid creating namespace conflicts. This aligns the behaviour with the DOM specification. Previously this threw a DOMException with code DOM_NAMESPACE_ERR.
 DOMDocument::loadThis function now has a tentative bool return type.
 DOMDocument::loadHTMLThis function now has a tentative bool return type.
 DOMDocument::loadHTMLFileThis function now has a tentative bool return type.
 DOMDocument::loadXMLThis function now has a tentative bool return type.
 DOMDocument::prependCalling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.
 DOMDocument::replaceChildrenCalling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.
 DOMDocument::saveXMLLIBXML_NOXMLDECL is now supported.
 DOMDocumentFragment::appendCalling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.
 DOMDocumentFragment::prependCalling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.
 DOMDocumentFragment::replaceChildrenCalling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.
 DOMElement::afterCalling this method on a node without a parent is now a no-op to align the behaviour with the DOM specification. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.
 DOMElement::afterCalling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.
 DOMElement::appendCalling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.
 DOMElement::beforeCalling this method on a node without a parent is now a no-op to align the behaviour with the DOM specification. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.
 DOMElement::prependCalling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.
 DOMElement::replaceChildrenCalling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.
 DOMElement::replaceWithCalling this method on a node without a parent is now a no-op to align the behaviour with the DOM specification. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.
 DOMParentNode::appendCalling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.
 DOMParentNode::prependCalling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.
 DOMParentNode::replaceChildrenCalling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.
 FFI::castCalling FFI::cast statically is now deprecated.
 FFI::newCalling FFI::new statically is now deprecated.
 FFI::typeCalling FFI::type statically is now deprecated.
 array_padPrior to 8.3, only 1048576 elements could be added at once. Now it is limited only by the maximum size of an array instead.
 array_productNow emits E_WARNING when array values cannot be converted to int or float. Previously arrays and objects where ignored whilst every other value was cast to int. Moreover, objects that define a numeric cast (e.g. GMP) are now cast instead of ignored.
 array_sumNow emits E_WARNING when array values cannot be converted to int or float. Previously arrays and objects where ignored whilst every other value was cast to int. Moreover, objects that define a numeric cast (e.g. GMP) are now cast instead of ignored.
 assertAll assert. INI settings have been deprecated.
 assert_optionsassert_option is now deprecated.
 class_aliasclass_alias now supports creating an alias of an internal class.
 curl_getinfoIntroduced CURLINFO_CAINFO and CURLINFO_CAPATH.
 dba_fetchCalling dba_fetch with dba as the 3rd argument is now deprecated.
 easter_dateOn 64-bit systems, the year parameter now accepts values within the range of 1970 to 2,000,000,000.
 gc_statusgc_status now returns the following additional fields: "running", "protected", "full", "buffer_size", "application_time", "collector_time", "destructor_time", and "free_time".
 get_classCalling get_class without an argument now emits an E_DEPRECATED warning; previously, calling this function inside a class returned the name of that class.
 get_parent_classCalling get_parent_class without an argument now emits an E_DEPRECATED warning; previously, calling this function inside a class returned the name of that class.
 highlight_fileThe resulting HTML has changed.
 highlight_stringThe resulting HTML has changed.
 imagerotateThe unused ignore_transparent has been completely removed.
 ldap_connectCalling ldap_connect with separate hostname and port is now deprecated.
 mb_convert_caseImplemented conditional casing rules for the Greek letter sigma which only apply to MB_CASE_LOWER and MB_CASE_TITLE modes, not to MB_CASE_LOWER_SIMPLE and MB_CASE_TITLE_SIMPLE.
 mb_decode_mimeheaderUnderscores are converted to spaces as specified by RFC 2047.
 mb_encode_mimeheaderNUL (0) bytes are no longer dropped when encoded using Quoted-Printable encoding, but encoded as =00.
 mb_strimwidthPassing a negative width to mb_strimwidth is now deprecated.
 mb_strtolowerImplemented conditional casing rules for the Greek letter sigma.
 mt_srandseed is now nullable.
 odbc_autocommitenable is now nullable.
 pg_convertNow throws a ValueError or TypeError error when the value or type of field does not match properly with a PostgreSQL's type; previously an E_WARNING was emitted.
 pg_fetch_objectNow throws a ValueError exception when the constructor_args is non-empty with the class not having constructor; previously an Exception was thrown.
 pg_fetch_resultrow is now nullable.
 pg_field_is_nullrow is now nullable.
 pg_field_prtlenrow is now nullable.
 pg_insertNow throws a ValueError error when the specified table is invalid; previously an E_WARNING was emitted.
 pg_insertNow throws a ValueError or TypeError error when the value or type of field does not match properly with a PostgreSQL's type; previously an E_WARNING was emitted.
 pg_tracetrace_mode has been added.
 posix_eaccessChecks the effective user/group for a file, differing from posix_access which checks from the real user/group.
 posix_getrlimitThe optional resource parameter has been added.
 posix_isattyType error E_WARNINGs are now raised for integer coercions following the usual PHP type coercion semantics.
 posix_ttynameType error E_WARNINGs are now raised for integer coercions following the usual PHP type coercion semantics.
 posix_ttynameOn invalid file_descriptor integer values an E_WARNING is now raised.
 proc_get_statusThe "cached" entry has been added to the returned array. Prior to PHP 8.3.0, only the first call returned the real exit code. The "cached" entry indicates that the exit code was cached.
 rangeIf both start and end are strings then range will now always produce an array of bytes. Previously if one of the boundary values was a numeric string, then the other boundary value was implicitly cast to int.
 rangeAn E_WARNING is now emitted if start or end is a string that is implicitly cast to int because the other boundary value is a number.
 rangeAn E_WARNING is now emitted if start or end is a non-numeric string with more than one byte.
 rangeAn E_WARNING is now emitted if start or end is the empty string.
 rangeIf step is a float with no fractional part, it will be interpreted as an int.
 rangeA ValueError is now thrown if step is negative when producing an increasing range.
 rangeA ValueError is now thrown if step is not finite.
 rangeA TypeError is now thrown if start or end is an array, object, or resource. Previously they were implicitly cast to int.
 srandseed is now nullable.
 strrchrThe before_needle parameter was added.
 strtokNow emits E_WARNING when token is not provided.
 unserializeNow emits E_WARNING when the passed string is not unserializeable; previously E_NOTICE was emitted.
 xml_parser_get_optionThe function now returns a boolean for boolean options.
 xml_parser_set_optionThe value parameter now also accepts booleans. The options XML_OPTION_CASE_FOLDING and XML_OPTION_SKIP_WHITE are now boolean options.
 IntlBreakIterator::setTextThis method now returns false on failure; previously it returns null.
 IntlChar::enumCharNamesThis method now returns false on failure; previously it returns null.
 IntlDateFormatter::setTimeZoneThis function now returns true on success; previously it returns null.
 mysqli_result::fetch_objectNow throws a ValueError exception when the constructor_args is non-empty with the class not having constructor; previously an Exception was thrown.
 mysqli::pollNow throws a ValueError exception when neither the read nor error arguments are passed.
 Phar::setStubCalling Phar::setStub with a resource and a length is now deprecated. Such calls should be replaced by: $phar->setStub(stream_get_contents($resource));
 ReflectionClass::getStaticPropertiesThe return type of ReflectionClass::getStaticProperties has been changed to array from ?array.
 ReflectionProperty::setValueCalling this method with a single argument is deprecated, ReflectionClass::setStaticPropertyValue should be used instead to modify static properties.
 SQLite3::enableExceptionsCalling SQLite3::enableExceptions with enable as false will trigger a E_DEPRECATED warning.
 ZipArchive::addFileZipArchive::FL_OPEN_FILE_NOW was added.
 ZipArchive::addFileZipArchive::LENGTH_TO_END and ZipArchive::LENGTH_UNCHECKED were added.
 ZipArchive::addGlobZipArchive::FL_OPEN_FILE_NOW was added.
 ZipArchive::replaceFileZipArchive::FL_OPEN_FILE_NOW was added.
 ZipArchive::replaceFileZipArchive::LENGTH_TO_END and ZipArchive::LENGTH_UNCHECKED were added.
8.2.9DateTimeImmutable::createFromFormatThe (space) specifier now also supports NBSP (U+A0) and NNBSP (U+202F) characters.
8.2.1SplFileObject::__toStringChanged from an alias of SplFileObject::fgets to an implementation of SplFileObject::current which returns a CSV string when the SplFileObject::READ_CSV flag is set.
8.2.0ArrayIterator::asortThe return type is true now; previously, it was bool.
 ArrayIterator::ksortThe return type is true now; previously, it was bool.
 ArrayIterator::natcasesortThe return type is true now; previously, it was bool.
 ArrayIterator::natsortThe return type is true now; previously, it was bool.
 ArrayIterator::uasortThe return type is true now; previously, it was bool.
 ArrayIterator::uksortThe return type is true now; previously, it was bool.
 ArrayObject::asortThe return type is true now; previously, it was bool.
 ArrayObject::ksortThe return type is true now; previously, it was bool.
 ArrayObject::natcasesortThe return type is true now; previously, it was bool.
 ArrayObject::natsortThe return type is true now; previously, it was bool.
 ArrayObject::uasortThe return type is true now; previously, it was bool.
 ArrayObject::uksortThe return type is true now; previously, it was bool.
 DateInterval::__constructOnly the y to f, invert, and days will be visible, including a new from_string boolean property.
 DateInterval::createFromDateStringOnly the from_string and date_string properties will be visible when a DateInterval is created with this method.
 DatePeriod::__constructThe DatePeriod::INCLUDE_END_DATE constant has been added.
 DateTime::createFromFormatNow throws ValueError when NULL-bytes are passed into datetime, which previously was silently ignored.
 DateTimeInterface::formatThe format characters X and x have been added.
 DateTimeImmutable::createFromFormatThe X and x format specifiers have been added.
 DateTimeImmutable::createFromFormatNow throws ValueError when NULL-bytes are passed into datetime, which previously was silently ignored.
 DateTimeImmutable::getLastErrorsBefore PHP 8.2.0, this function did not return false when there were no warnings or errors. Instead, it would always return the documented array structure.
 FilesystemIterator::__constructPrior to PHP 8.2.0, FilesystemIterator::SKIP_DOTS was always set and could not be removed.
 array_walkThe return type is true now; previously, it was bool.
 array_walk_recursiveThe return type is true now; previously, it was bool.
 arsortThe return type is true now; previously, it was bool.
 asortThe return type is true now; previously, it was bool.
 curl_getinfoIntroduced CURLINFO_PROXY_ERROR, CURLINFO_REFERER, CURLINFO_RETRY_AFTER.
 curl_multi_setoptIntroduced CURLMOPT_MAX_CONCURRENT_STREAMS.
 date_parse_from_formatNow throws ValueError when NULL-bytes are passed into datetime, which previously was silently ignored.
 dba_fetchdba_fetch's optional skip argument is now at the end in line with PHP userland semantics. The previously overloaded signature is still accepted but discouraged.
 dba_openflags is added.
 dba_openhandler is now nullable.
 dba_popenflags is added.
 getimagesizeNow returns the actual image dimensions, bits and channels of AVIF images; previously, the dimensions were reported as 0x0, and bits and channels were not reported at all.
 idateAdds the N (ISO-8601 day of the week) and o (ISO-8601 year) format characters.
 iterator_countThe type of iterator has been widened from Traversable to Traversablearray.
 iterator_to_arrayThe type of iterator has been widened from Traversable to Traversablearray.
 krsortThe return type is true now; previously, it was bool.
 krsortThis function now does numeric string comparison under SORT_REGULAR using the standard PHP 8 rules.
 ksortThe return type is true now; previously, it was bool.
 ksortThis function now does numeric string comparison under SORT_REGULAR using the standard PHP 8 rules.
 lcfirstCase conversion no longer depends on the locale set with setlocale. Only ASCII characters will be converted.
 mb_convert_encodingmb_convert_encoding will no longer return the following non text encodings: "Base64", "QPrint", "UUencode", "HTML entities", "7 bit" and "8 bit".
 mb_convert_kanaA ValueError is now thrown if the combination of different modes is invalid.
 mb_detect_encodingmb_detect_encoding will no longer return the following non text encodings: "Base64", "QPrint", "UUencode", "HTML entities", "7 bit" and "8 bit".
 natcasesortThe return type is true now; previously, it was bool.
 natsortThe return type is true now; previously, it was bool.
 openlogThe function now always returns true. Previously it returned false on failure.
 pg_closeThe return type is true now; previously, it was bool.
 pg_untraceThe return type is true now; previously, it was bool.
 random_bytesIn case of a CSPRNG failure, this function will now throw a Random\RandomException. Previously a plain Exception was thrown.
 random_intIn case of a CSPRNG failure, this function will now throw a Random\RandomException. Previously a plain Exception was thrown.
 rsortThe return type is true now; previously, it was bool.
 setcookieThe date format of the cookie is now 'D, d M Y H:i:s \G\M\T'; previously it was 'D, d-M-Y H:i:s T'.
 snmp_set_enum_printThe return type is true now; previously, it was bool.
 snmp_set_oid_output_formatThe return type is true now; previously, it was bool.
 snmp_set_quick_printThe return type is true now; previously, it was bool.
 snmp_set_valueretrievalThe return type is true now; previously, it was bool.
 sortThe return type is true now; previously, it was bool.
 str_ireplaceCase folding no longer depends on the locale set with setlocale. Only ASCII case folding will be done. Non-ASCII bytes will be compared by their byte value.
 str_splitIf string is empty an empty array is now returned. Previously an array containing a single empty string was returned.
 strcasecmpThis function now returns -1 or 1, where it previously returned a negative or positive number.
 strcmpThis function now returns -1 or 1, where it previously returned a negative or positive number.
 striposCase folding no longer depends on the locale set with setlocale. Only ASCII case folding will be done. Non-ASCII bytes will be compared by their byte value.
 stristrCase folding no longer depends on the locale set with setlocale. Only ASCII case folding will be done. Non-ASCII bytes will be compared by their byte value.
 strnatcasecmpThis function now returns -1 or 1, where it previously returned a negative or positive number.
 strnatcmpThis function now returns -1 or 1, where it previously returned a negative or positive number.
 strncasecmpThis function now returns -1 or 1, where it previously returned a negative or positive number.
 strncmpThis function now returns -1 or 1, where it previously returned a negative or positive number.
 strriposCase folding no longer depends on the locale set with setlocale. Only ASCII case folding will be done. Non-ASCII bytes will be compared by their byte value.
 strtolowerCase conversion no longer depends on the locale set with setlocale. Only ASCII characters will be converted.
 strtoupperCase conversion no longer depends on the locale set with setlocale. Only ASCII characters will be converted.
 substr_compareThis function now returns -1 or 1, where it previously returned a negative or positive number.
 uasortThe return type is true now; previously, it was bool.
 ucfirstCase conversion no longer depends on the locale set with setlocale. Only ASCII characters will be converted.
 ucwordsCase conversion no longer depends on the locale set with setlocale. Only ASCII characters will be converted.
 uksortThe return type is true now; previously, it was bool.
 usortThe return type is true now; previously, it was bool.
 utf8_decodeThis function has been deprecated.
 utf8_encodeThis function has been deprecated.
 var_exportExported class names are now fully qualified; previously, the leading backslash was ommitted.
 IntlCalendar::clearThe return type is true now; previously, it was bool.
 IntlCalendar::setThe return type is true now; previously, it was bool.
 IntlCalendar::setFirstDayOfWeekThe return type is true now; previously, it was bool.
 IntlCalendar::setLenientThe return type is true now; previously, it was bool.
 IntlCalendar::setRepeatedWallTimeOptionThe return type is true now; previously, it was bool.
 IntlCalendar::setSkippedWallTimeOptionThe return type is true now; previously, it was bool.
 ReflectionEnum::getBackingTypeThe return type is now declared as ?ReflectionNamedType. Previously, ?ReflectionType was declared.
8.1.14SplFileObject::__toStringChanged from an alias of SplFileObject::fgets to an implementation of SplFileObject::current which returns a CSV string when the SplFileObject::READ_CSV flag is set.
8.1.8DateTime::createFromFormatNow throws ValueError when NULL-bytes are passed into datetime, which previously was silently ignored.
 DateTimeImmutable::createFromFormatNow throws ValueError when NULL-bytes are passed into datetime, which previously was silently ignored.
 date_parse_from_formatNow throws ValueError when NULL-bytes are passed into datetime, which previously was silently ignored.
8.1.0DateTime::setTimeThe behaviour with double existing hours (during the fall-back DST transition) changed. Previously PHP would pick the second occurrence (after the DST transition), instead of the first occurrence (before DST transition).
 DateTimeImmutable::setTimeThe behaviour with double existing hours (during the fall-back DST transition) changed. Previously PHP would pick the second occurrence (after the DST transition), instead of the first occurrence (before DST transition).
 DirectoryIterator::keyWhen the iterator is uninitialized, an Error is thrown now. Previously, the method returned false.
 DOMDocument::createCommentIn case of an error, a DomException is thrown now. Previously, false was returned.
 DOMDocument::createDocumentFragmentIn case of an error, a DomException is thrown now. Previously, false was returned.
 DOMDocument::createTextNodeIn case of an error, a DomException is thrown now. Previously, false was returned.
 currentCalling this function on objects is deprecated. Either convert the object to an array using get_mangled_object_vars first, or use the methods provided by a class that implements Iterator, such as ArrayIterator, instead.
 date_sunriseThis function has been deprecated in favor of date_sun_info.
 date_sunsetThis function has been deprecated in favor of date_sun_info.
 dba_popenhandler is now nullable.
 endCalling this function on objects is deprecated. Either convert the object to an array using get_mangled_object_vars first, or use the methods provided by a class that implements Iterator, such as ArrayIterator, instead.
 exif_imagetypeAdded AVIF support.
 finfo_bufferThe finfo parameter expects an finfo instance now; previously, a resource was expected.
 finfo_closeThe finfo parameter expects an finfo instance now; previously, a resource was expected.
 finfo_fileThe finfo parameter expects an finfo instance now; previously, a resource was expected.
 finfo_openReturns an finfo instance now; previously, a resource was returned.
 finfo_set_flagsThe finfo parameter expects an finfo instance now; previously, a resource was expected.
 fputcsvThe optional eol parameter has been added.
 ftp_allocThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
 ftp_appendThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
 ftp_cdupThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
 ftp_chdirThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
 ftp_chmodThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
 ftp_closeThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
 ftp_connectReturns an FTP\Connection instance now; previously, a resource was returned.
 ftp_deleteThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
 ftp_execThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
 ftp_fgetThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
 ftp_fputThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
 ftp_getThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
 ftp_get_optionThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
 ftp_loginThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
 ftp_mdtmThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
 ftp_mkdirThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
 ftp_mlsdThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
 ftp_nb_continueThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
 ftp_nb_fgetThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
 ftp_nb_fputThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
 ftp_nb_getThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
 ftp_nb_putThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
 ftp_nlistThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
 ftp_pasvThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
 ftp_putThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
 ftp_pwdThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
 ftp_rawThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
 ftp_rawlistThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
 ftp_renameThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
 ftp_rmdirThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
 ftp_set_optionThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
 ftp_siteThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
 ftp_sizeThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
 ftp_ssl_connectReturns an FTP\Connection instance now; previously, a resource was returned.
 ftp_systypeThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
 get_html_translation_tableflags changed from ENT_COMPAT to ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.
 hashThe options parameter has been added.
 hash_algosSupport for MurmurHash3 and xxHash algorithms has been added.
 hash_fileThe options parameter has been added.
 hash_initThe options parameter has been added.
 html_entity_decodeflags changed from ENT_COMPAT to ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.
 htmlentitiesflags changed from ENT_COMPAT to ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.
 htmlspecialcharsflags changed from ENT_COMPAT to ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.
 htmlspecialchars_decodeflags changed from ENT_COMPAT to ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.
 imagecharThe font parameter now accepts both an GdFont instance and an int; previously only int was accepted.
 imagecharupThe font parameter now accepts both an GdFont instance and an int; previously only int was accepted.
 imagefilledpolygonThe parameter num_points has been deprecated.
 imagefontheightThe font parameter now accepts both an GdFont instance and an int; previously only int was accepted.
 imagefontwidthThe font parameter now accepts both an GdFont instance and an int; previously only int was accepted.
 imageloadfontReturns an GdFont instance now; previously, an int was returned.
 imageopenpolygonThe parameter num_points has been deprecated.
 imagepolygonThe parameter num_points has been deprecated.
 imagestringThe font parameter now accepts both an GdFont instance and an int; previously only int was accepted.
 imagestringupThe font parameter now accepts both an GdFont instance and an int; previously only int was accepted.
 imagetypesIMG_AVIF added.
 ini_setvalue now accepts any scalar type (including null). Previously, only string values were accepted.
 keyCalling this function on objects is deprecated. Either convert the object to an array using get_mangled_object_vars first, or use the methods provided by a class that implements Iterator, such as ArrayIterator, instead.
 ldap_addThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
 ldap_add_extThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
 ldap_add_extReturns an LDAP\Result instance now; previously, a resource was returned.
 ldap_bindThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
 ldap_bind_extThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
 ldap_bind_extReturns an LDAP\Result instance now; previously, a resource was returned.
 ldap_compareThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
 ldap_connectReturns an LDAP\Connection instance now; previously, a resource was returned.
 ldap_count_entriesThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
 ldap_count_entriesThe result parameter expects an LDAP\Result instance now; previously, a valid ldap result resource was expected.
 ldap_count_referencesThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
 ldap_count_referencesThe result parameter expects an LDAP\Result instance now; previously, a valid ldap result resource was expected.
 ldap_deleteThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
 ldap_delete_extThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
 ldap_delete_extReturns an LDAP\Result instance now; previously, a resource was returned.
 ldap_errnoThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
 ldap_errorThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
 ldap_exopThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
 ldap_exop_passwdThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
 ldap_exop_refreshThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
 ldap_exop_whoamiThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
 ldap_first_attributeThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
 ldap_first_attributeThe entry parameter expects an LDAP\ResultEntry instance now; previously, a valid ldap result entry resource was expected.
 ldap_first_entryThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
 ldap_first_entryThe result parameter expects an LDAP\Result instance now; previously, a valid ldap result resource was expected.
 ldap_first_entryReturns an LDAP\ResultEntry instance now; previously, a resource was returned.
 ldap_free_resultThe result parameter expects an LDAP\Result instance now; previously, a valid ldap result resource was expected.
 ldap_get_attributesThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
 ldap_get_attributesThe entry parameter expects an LDAP\ResultEntry instance now; previously, a valid ldap result entry resource was expected.
 ldap_get_dnThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
 ldap_get_dnThe entry parameter expects an LDAP\ResultEntry instance now; previously, a valid ldap result entry resource was expected.
 ldap_get_entriesThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
 ldap_get_entriesThe result parameter expects an LDAP\Result instance now; previously, a valid ldap result resource was expected.
 ldap_get_optionThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
 ldap_get_valuesThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
 ldap_get_valuesThe entry parameter expects an LDAP\ResultEntry instance now; previously, a valid ldap result entry resource was expected.
 ldap_get_values_lenThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
 ldap_get_values_lenThe entry parameter expects an LDAP\ResultEntry instance now; previously, a valid ldap result entry resource was expected.
 ldap_listThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
 ldap_listReturns an LDAP\Result instance now; previously, a resource was returned.
 ldap_mod_addThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
 ldap_mod_delThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
 ldap_mod_replaceThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
 ldap_modify_batchThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
 ldap_mod_add_extThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
 ldap_mod_add_extReturns an LDAP\Result instance now; previously, a resource was returned.
 ldap_mod_del_extThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
 ldap_mod_del_extReturns an LDAP\Result instance now; previously, a resource was returned.
 ldap_mod_replace_extThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
 ldap_mod_replace_extReturns an LDAP\Result instance now; previously, a resource was returned.
 ldap_next_attributeThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
 ldap_next_attributeThe entry parameter expects an LDAP\ResultEntry instance now; previously, a valid ldap result entry resource was expected.
 ldap_next_entryThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
 ldap_next_entryThe entry parameter expects an LDAP\ResultEntry instance now; previously, a valid ldap result entry resource was expected.
 ldap_next_entryReturns an LDAP\Result instance now; previously, a resource was returned.
 ldap_parse_exopThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
 ldap_parse_exopThe result parameter expects an LDAP\Result instance now; previously, a valid ldap result resource was expected.
 ldap_parse_resultThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
 ldap_parse_resultThe result parameter expects an LDAP\Result instance now; previously, a valid ldap result resource was expected.
 ldap_readThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
 ldap_readReturns an LDAP\Result instance now; previously, a resource was returned.
 ldap_renameThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
 ldap_rename_extThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
 ldap_rename_extReturns an LDAP\Result instance now; previously, a resource was returned.
 ldap_sasl_bindThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
 ldap_searchThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
 ldap_searchReturns an LDAP\Result instance now; previously, a resource was returned.
 ldap_set_optionThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
 ldap_set_rebind_procThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
 ldap_unbindThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
 mb_check_encodingCalling this function with null as value or without argument is deprecated.
 mhashThis function has been deprecated. Use the hash_*() functions instead.
 mhash_countThis function has been deprecated. Use the hash_*() functions instead.
 mhash_get_block_sizeThis function has been deprecated. Use the hash_*() functions instead.
 mhash_get_hash_nameThis function has been deprecated. Use the hash_*() functions instead.
 mhash_keygen_s2kThis function has been deprecated. Use the hash_*() functions instead.
 nextCalling this function on objects is deprecated. Either convert the object to an array using get_mangled_object_vars first, or use the methods provided by a class that implements Iterator, such as ArrayIterator, instead.
 odbc_result_allThis function has been deprecated.
 openssl_cms_encryptThe default cipher algorithm (cipher_algo) is now AES-128-CBC (OPENSSL_CIPHER_AES_128_CBC). Previously, PKCS7/CMS was used (OPENSSL_CIPHER_RC2_40).
 openssl_decrypttag is now nullable.
 openssl_pkcs7_encryptThe default cipher algorithm (cipher_algo) is now AES-128-CBC (OPENSSL_CIPHER_AES_128_CBC). Previously, PKCS7/CMS was used (OPENSSL_CIPHER_RC2_40).
 pg_affected_rowsThe result parameter expects an PgSql\Result instance now; previously, a resource was expected.
 pg_cancel_queryThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_client_encodingThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_closeThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_connectReturns an PgSql\Connection instance now; previously, a resource was returned.
 pg_connect_pollThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_connection_busyThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_connection_resetThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_connection_statusThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_consume_inputThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_convertThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_copy_fromThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_copy_toThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_dbnameThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_deleteThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_end_copyThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_escape_byteaThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_escape_identifierThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_escape_literalThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_escape_stringThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_executeReturns an PgSql\Result instance now; previously, a resource was returned.
 pg_executeThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_fetch_allThe result parameter expects an PgSql\Result instance now; previously, a resource was expected.
 pg_fetch_all_columnsThe result parameter expects an PgSql\Result instance now; previously, a resource was expected.
 pg_fetch_arrayThe result parameter expects an PgSql\Result instance now; previously, a resource was expected.
 pg_fetch_assocThe result parameter expects an PgSql\Result instance now; previously, a resource was expected.
 pg_fetch_objectThe result parameter expects an PgSql\Result instance now; previously, a resource was expected.
 pg_fetch_resultThe result parameter expects an PgSql\Result instance now; previously, a resource was expected.
 pg_fetch_rowThe result parameter expects an PgSql\Result instance now; previously, a resource was expected.
 pg_field_is_nullThe result parameter expects an PgSql\Result instance now; previously, a resource was expected.
 pg_field_nameThe result parameter expects an PgSql\Result instance now; previously, a resource was expected.
 pg_field_numThe result parameter expects an PgSql\Result instance now; previously, a resource was expected.
 pg_field_prtlenThe result parameter expects an PgSql\Result instance now; previously, a resource was expected.
 pg_field_sizeThe result parameter expects an PgSql\Result instance now; previously, a resource was expected.
 pg_field_tableThe result parameter expects an PgSql\Result instance now; previously, a resource was expected.
 pg_field_typeThe result parameter expects an PgSql\Result instance now; previously, a resource was expected.
 pg_field_type_oidThe result parameter expects an PgSql\Result instance now; previously, a resource was expected.
 pg_flushThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_free_resultThe result parameter expects an PgSql\Result instance now; previously, a resource was expected.
 pg_get_notifyThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_get_pidThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_get_resultReturns an PgSql\Result instance now; previously, a resource was returned.
 pg_get_resultThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_hostThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_insertReturns an PgSql\Result instance now; previously, a resource was returned.
 pg_insertThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_last_errorThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_last_noticeThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_last_oidThe result parameter expects an PgSql\Result instance now; previously, a resource was expected.
 pg_lo_closeThe lob parameter expects an PgSql\Lob instance now; previously, a resource was expected.
 pg_lo_createThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_lo_exportThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_lo_importThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_lo_openReturns an PgSql\Lob instance now; previously, a resource was returned.
 pg_lo_openThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_lo_readThe lob parameter expects an PgSql\Lob instance now; previously, a resource was expected.
 pg_lo_read_allThe lob parameter expects an PgSql\Lob instance now; previously, a resource was expected.
 pg_lo_seekThe lob parameter expects an PgSql\Lob instance now; previously, a resource was expected.
 pg_lo_tellThe lob parameter expects an PgSql\Lob instance now; previously, a resource was expected.
 pg_lo_truncateThe lob parameter expects an PgSql\Lob instance now; previously, a resource was expected.
 pg_lo_unlinkThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_lo_writeThe lob parameter expects an PgSql\Lob instance now; previously, a resource was expected.
 pg_meta_dataThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_num_fieldsThe result parameter expects an PgSql\Result instance now; previously, a resource was expected.
 pg_num_rowsThe result parameter expects an PgSql\Result instance now; previously, a resource was expected.
 pg_optionsThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_parameter_statusThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_pconnectReturns an PgSql\Connection instance now; previously, a resource was returned.
 pg_pingThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_portThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_prepareReturns an PgSql\Result instance now; previously, a resource was returned.
 pg_prepareThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_put_lineThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_queryReturns an PgSql\Result instance now; previously, a resource was returned.
 pg_queryThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_query_paramsReturns an PgSql\Result instance now; previously, a resource was returned.
 pg_query_paramsThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_result_errorThe result parameter expects an PgSql\Result instance now; previously, a resource was expected.
 pg_result_error_fieldThe result parameter expects an PgSql\Result instance now; previously, a resource was expected.
 pg_result_seekThe result parameter expects an PgSql\Result instance now; previously, a resource was expected.
 pg_result_statusThe result parameter expects an PgSql\Result instance now; previously, a resource was expected.
 pg_selectThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_send_executeThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_send_prepareThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_send_queryThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_send_query_paramsThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_set_client_encodingThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_set_error_verbosityThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_socketThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_traceThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_transaction_statusThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_ttyThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_untraceThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_updateThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 pg_versionThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
 prevCalling this function on objects is deprecated. Either convert the object to an array using get_mangled_object_vars first, or use the methods provided by a class that implements Iterator, such as ArrayIterator, instead.
 resetCalling this function on objects is deprecated. Either convert the object to an array using get_mangled_object_vars first, or use the methods provided by a class that implements Iterator, such as ArrayIterator, instead.
 snmp3_getThe auth_protocol now accepts "SHA256" and "SHA512" when supported by libnetsnmp.
 snmp3_getnextThe auth_protocol now accepts "SHA256" and "SHA512" when supported by libnetsnmp.
 snmp3_real_walkThe auth_protocol now accepts "SHA256" and "SHA512" when supported by libnetsnmp.
 snmp3_walkThe auth_protocol now accepts "SHA256" and "SHA512" when supported by libnetsnmp.
 stream_selectmicroseconds is now nullable.
 strptimeThis function has been deprecated. Use date_parse_from_format instead (for locale-independent parsing), or IntlDateFormatter::parse (for locale-dependent parsing)
 IntlDateFormatter::createParameters dateType and timeType are now optional.
 MultipleIterator::currentA RuntimeException is now thrown if MultipleIterator::current is called on an invalid iterator. Previously, false was returned.
 MultipleIterator::keyA RuntimeException is now thrown if MultipleIterator::key is called on an invalid iterator. Previously, false was returned.
 mysqli_driver::$report_modeThe default value is now MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT. Previously, it was MYSQLI_REPORT_OFF.
 mysqli_result::fetch_allNow also available when linking against libmysqlclient.
 mysqli_stmt::executeThe optional params parameter has been added.
 mysqli_stmt::next_resultNow also available when linking against libmysqlclient.
 mysqli::__constructmysqli::connect now returns true instead of null on success.
 mysqli::$client_infoCalling mysqli_get_client_info with the mysql argument has been deprecated. This function never required a parameter, but incorrectly allowed it as an optional parameter.
 mysqli::$client_infoThe object-oriented style mysqli::get_client_info has been deprecated.
 mysqli::initThe object-oriented style mysqli::init method has been deprecated. Replace calls to parent::init with parent::__construct.
 Phar::buildFromDirectoryPhar::buildFromDirectory no longer returns false.
 Phar::buildFromIteratorPhar::buildFromIterator no longer returns false.
 PharData::buildFromDirectoryPharData::buildFromDirectory no longer returns false.
 PharData::buildFromIteratorPharData::buildFromIterator no longer returns false.
 ReflectionFunctionAbstract::isStaticThis method has been pulled up. Previously, it was only defined in ReflectionMethod.
 ReflectionClassConstant::getNameThrows an Error in case the name property has not been initialized. Previously, the method returned false on failure.
 ReflectionExtension::__cloneThis method is no longer final.
 ReflectionFunctionAbstract::__cloneThis method is no longer final.
 ReflectionParameter::__cloneThis method is no longer final.
 ReflectionProperty::__cloneThis method is no longer final.
 ReflectionProperty::getValuePrivate and protected properties can be accessed by ReflectionProperty::getValue right away. Previously, they needed to be made accessible by calling ReflectionProperty::setAccessible; otherwise a ReflectionException was thrown.
 ReflectionProperty::setValuePrivate and protected properties can be accessed by ReflectionProperty::setValue right away. Previously, they needed to be made accessible by calling ReflectionProperty::setAccessible; otherwise a ReflectionException was thrown.
 ReflectionZendExtension::__cloneThis method is no longer final.
 SimpleXMLElement::currentAn Error is now thrown if SimpleXMLElement::current is called on an invalid iterator. Previously, null was returned.
 SimpleXMLElement::keyAn Error is now thrown if SimpleXMLElement::key is called on an invalid iterator. Previously, false was returned.
 SplFileObject::fputcsvThe optional eol parameter has been added.
 SplObjectStorage::currentSplObjectStorage::current now throws an Error exception if the current position is invalid. Previously, false was returned instead.
8.0.21DateTime::createFromFormatNow throws ValueError when NULL-bytes are passed into datetime, which previously was silently ignored.
 DateTimeImmutable::createFromFormatNow throws ValueError when NULL-bytes are passed into datetime, which previously was silently ignored.
 date_parse_from_formatNow throws ValueError when NULL-bytes are passed into datetime, which previously was silently ignored.
8.0.5imageinterlaceimageinterlace returns a bool now; previously it returned an int (non-zero for interlaced images, zero otherwise).
8.0.3DOMDocument::getElementsByTagNameNSnamespace is nullable now.
 DOMElement::getElementsByTagNameNSnamespace is nullable now.
 DOMImplementation::createDocumentnamespace is now nullable.
 finfo::__constructmagic_database is nullable now.
 bind_textdomain_codesetcodeset is nullable now. Previously, it was not possible to retrieve the currently set encoding.
 bindtextdomaindirectory is nullable now. Previously, it was not possible to retrieve the currently set directory.
 finfo_openmagic_database is nullable now.
 imagegdfile is now nullable.
 imagegd2file is now nullable.
 SoapClient::__setLocationlocation is nullable now.
 SoapVar::__constructtypeName, typeNamespace, nodeName,and nodeNamespace are nullable now.
8.0.0CURLFile::__constructmime_type and posted_filename are nullable now; previously their default was 0.
 DateInterval::__constructW can be combined with D.
 DateTime::createFromImmutableThe method returns an instance of the currently invoked class now. Previously, it created a new instance of DateTime.
 DateTimeInterface::formatThe format character p has been added.
 DateTimeInterface::getTimestampThese functions no longer return false on failure.
 DateTimeImmutable::createFromMutableThe method returns an instance of the currently invoked class now. Previously, it created a new instance of DateTimeImmutable.
 DateTimeZone::listIdentifiersPrior to this version, false was returned on failure.
 Directory::closeNo parameter is accepted. Previously, a directory handle could be passed as argument.
 Directory::readNo parameter is accepted. Previously, a directory handle could be passed as argument.
 Directory::rewindNo parameter is accepted. Previously, a directory handle could be passed as argument.
 DirectoryIterator::__constructNow throws a ValueError if directory is an empty string; previously it threw a RuntimeException.
 DOMDocument::loadCalling this function statically will now throw an Error. Previously, an E_DEPRECATED was raised.
 DOMDocument::loadHTMLCalling this function statically will now throw an Error. Previously, an E_DEPRECATED was raised.
 DOMDocument::loadHTMLFileCalling this function statically will now throw an Error. Previously, an E_DEPRECATED was raised.
 DOMDocument::loadXMLCalling this function statically will now throw an Error. Previously, an E_DEPRECATED was raised.
 DOMImplementation::createDocumentdoctype is now nullable.
 DOMImplementation::createDocumentCalling this function statically will now throw an Error. Previously, an E_DEPRECATED was raised.
 DOMImplementation::createDocumentTypeCalling this function statically will now throw an Error. Previously, an E_DEPRECATED was raised.
 DOMImplementation::hasFeatureCalling this function statically will now throw an Error. Previously, an E_DEPRECATED was raised.
 FFI::cdeflib is nullable now.
 FFI::stringsize is nullable now; previously, its default was 0.
 FilesystemIterator::__constructNow throws a ValueError if directory is an empty string; previously it threw a RuntimeException.
 absnum no longer accepts internal objects which support numeric conversion.
 apache_notenote_value is nullable now.
 array_chunkIf length is less than 1, a ValueError will be thrown now; previously, an error of level E_WARNING has been raised instead, and the function returned null.
 array_columnObjects in columns indicated by index_key parameter will no longer be cast to string and will now throw a TypeError instead.
 array_combinearray_combine will now throw a ValueError if the number of elements for each array is not equal; previously this function returned false instead.
 array_diffThis function can now be called with only one parameter. Formerly, at least two parameters have been required.
 array_diff_assocThis function can now be called with only one parameter. Formerly, at least two parameters have been required.
 array_diff_keyThis function can now be called with only one parameter. Formerly, at least two parameters have been required.
 array_fillarray_fill now throws a ValueError if count is out of range; previously E_WARNING was raised, and the function returned false.
 array_filtercallback is nullable now.
 array_filterIf callback expects a parameter to be passed by reference, this function will now emit an E_WARNING.
 array_intersectThis function can now be called with only one parameter. Formerly, at least two parameters have been required.
 array_intersect_assocThis function can now be called with only one parameter. Formerly, at least two parameters have been required.
 array_intersect_keyThis function can now be called with only one parameter. Formerly, at least two parameters have been required.
 array_key_existsThe key parameter now accepts bool, float, int, null, resource, and string as arguments.
 array_mapIf callback expects a parameter to be passed by reference, this function will now emit an E_WARNING.
 array_randarray_rand now throws a ValueError if num is out of range; previously an E_WARNING was raised, and the function returned null.
 array_randarray_rand now throws a ValueError if array is empty; previously an E_WARNING was raised, and the function returned null.
 array_reduceIf callback expects a parameter to be passed by reference, this function will now emit an E_WARNING.
 array_splicelength is nullable now.
 array_walkIf callback expects the second or third parameter to be passed by reference, this function will now emit an E_WARNING.
 assertassert will no longer evaluate string arguments, instead they will be treated like any other argument. assert($a == $b) should be used instead of assert('$a == $b'). The assert.quiet_eval php.ini directive and the ASSERT_QUIET_EVAL constant have also been removed, as they would no longer have any effect.
 assertIf description is an instance of Throwable, the object is thrown if the assertion fails, regardless of the value of assert.exception.
 assertIf description is an instance of Throwable, no user callback is called even if it set.
 assertDeclaring a function called assert() inside a namespace is no longer allowed, and issues E_COMPILE_ERROR.
 assert_optionsIf option is not a valid option, a ValueError is now thrown. Previously false was returned.
 bcaddscale is now nullable.
 bccompscale is now nullable.
 bcdivscale is now nullable.
 bcdivDividing by 0 now throws a DivisionByZeroError exception instead of returning null.
 bcmodscale is now nullable.
 bcmodDividing by 0 now throws a DivisionByZeroError exception instead of returning null.
 bcmulscale is now nullable.
 bcpowWhen exponent has a fractional part, it now throws a ValueError instead of truncating.
 bcpowmodscale is now nullable.
 bcscalescale is now nullable.
 bcsqrtIf num is not a well-formed BCMath numeric string, or less than 0, a ValueError is thrown. Previously, E_WARNING was raised instead.
 bcsqrtscale now needs to be between 0 and 2147483647; previously, negative scales have been silently treated as 0.
 bcsqrtscale is now nullable.
 bcsubscale is now nullable.
 bzdecompressThe type of use_less_memory has been changed from int to bool. Previously, the default value was 0.
 bzwritelength is nullable now.
 call_user_func_arrayargs keys will now be interpreted as parameter names, instead of being silently ignored.
 ceilnum no longer accepts internal objects which support numeric conversion.
 com_event_sinksink_interface is nullable now.
 com_get_active_objectcodepage is nullable now.
 compactIf a given string references an unset variable, an E_WARNING level error is now issued.
 constantIf the constant is not defined, constant now throws an Error exception; previously an E_WARNING was generated, and null was returned.
 convert_uuencodePrior to this version, trying to convert an empty string returned false for no particular reason.
 countcount will now throw TypeError on invalid countable types passed to the value parameter.
 count_charsPrior to this version, the function returned false on failure.
 cryptThe salt is no longer optional.
 curl_closehandle expects a CurlHandle instance now; previously, a resource was expected.
 curl_copy_handlehandle expects a CurlHandle instance now; previously, a resource was expected.
 curl_copy_handleOn success, this function returns a CurlHandle instance now; previously, a resource was returned.
 curl_errnohandle expects a CurlHandle instance now; previously, a resource was expected.
 curl_errorhandle expects a CurlHandle instance now; previously, a resource was expected.
 curl_escapehandle expects a CurlHandle instance now; previously, a resource was expected.
 curl_exechandle expects a CurlHandle instance now; previously, a resource was expected.
 curl_getinfohandle expects a CurlHandle instance now; previously, a resource was expected.
 curl_getinfooption is nullable now; previously, the default was 0.
 curl_initOn success, this function returns a CurlHandle instance now; previously, a resource was returned.
 curl_initurl is nullable now.
 curl_multi_add_handlemulti_handle expects a CurlMultiHandle instance now; previously, a resource was expected.
 curl_multi_add_handlehandle expects a CurlHandle instance now; previously, a resource was expected.
 curl_multi_closemulti_handle expects a CurlMultiHandle instance now; previously, a resource was expected.
 curl_multi_errnoThe function no longer returns false on failure.
 curl_multi_errnomulti_handle expects a CurlMultiHandle instance now; previously, a resource was expected.
 curl_multi_execmulti_handle expects a CurlMultiHandle instance now; previously, a resource was expected.
 curl_multi_getcontenthandle expects a CurlHandle instance now; previously, a resource was expected.
 curl_multi_info_readmulti_handle expects a CurlMultiHandle instance now; previously, a resource was expected.
 curl_multi_initOn success, this function returns a CurlMultiHandle instance now; previously, a resource was returned.
 curl_multi_remove_handlemulti_handle expects a CurlMultiHandle instance now; previously, a resource was expected.
 curl_multi_remove_handlehandle expects a CurlHandle instance now; previously, a resource was expected.
 curl_multi_selectmulti_handle expects a CurlMultiHandle instance now; previously, a resource was expected.
 curl_multi_setoptmulti_handle expects a CurlMultiHandle instance now; previously, a resource was expected.
 curl_pausehandle expects a CurlHandle instance now; previously, a resource was expected.
 curl_resethandle expects a CurlHandle instance now; previously, a resource was expected.
 curl_setopthandle expects a CurlHandle instance now; previously, a resource was expected.
 curl_setopt_arrayhandle expects a CurlHandle instance now; previously, a resource was expected.
 curl_share_closeshare_handle expects a CurlShareHandle instance now; previously, a resource was expected.
 curl_share_errnoThe function no longer returns false on failure.
 curl_share_errnoshare_handle expects a CurlShareHandle instance now; previously, a resource was expected.
 curl_share_initThis function returns a CurlShareHandle instance now; previously, a resource was returned.
 curl_share_setoptshare_handle expects a CurlShareHandle instance now; previously, a resource was expected.
 curl_unescapehandle expects a CurlHandle instance now; previously, a resource was expected.
 curl_versionThe optional age parameter has been removed.
 datetimestamp is nullable now.
 date_sunriselatitude, longitude, zenith and utcOffset are nullable now.
 date_sunsetlatitude, longitude, zenith and utcOffset are nullable now.
 definePassing true to case_insensitive now emits an E_WARNING. Passing false is still allowed.
 deflate_addcontext expects a DeflateContext instance now; previously, a resource was expected.
 deflate_initOn success, this function returns a DeflateContext instance now; previously, a resource was returned.
 dircontext is now nullable.
 dom_import_simplexmlThis function no longer returns null on failure.
 easter_dateyear is nullable now.
 easter_dateA ValueError is now thrown when year is outside the allowed range. Previously, an E_WARNING was raised and the function returned false.
 easter_daysyear is nullable now.
 enchant_broker_describebroker expects an EnchantBroker instance now; previoulsy, a resource was expected.
 enchant_broker_describePrior to this version, the function returned false on failure.
 enchant_broker_dict_existsbroker expects an EnchantBroker instance now; previoulsy, a resource was expected.
 enchant_broker_freebroker expects an EnchantBroker instance now; previoulsy, a resource was expected.
 enchant_broker_free_dictdictionary expects a EnchantDictionary now; previoulsy, a resource was expected.
 enchant_broker_get_dict_pathbroker expects an EnchantBroker instance now; previoulsy, a resource was expected.
 enchant_broker_get_errorbroker expects an EnchantBroker instance now; previoulsy, a resource was expected.
 enchant_broker_initOn success, this function returns an EnchantBroker instance now; previously, a resource was returned.
 enchant_broker_list_dictsbroker expects an EnchantBroker instance now; previoulsy, a resource was expected.
 enchant_broker_list_dictsPrior to this version, the function returned false on failure.
 enchant_broker_request_dictbroker expects an EnchantBroker instance now; previoulsy, a resource was expected.
 enchant_broker_request_dictOn success, this function returns an EnchantDictionary instance now; previoulsy, a resource was retured.
 enchant_broker_request_pwl_dictbroker expects an EnchantBroker instance now; previoulsy, a resource was expected.
 enchant_broker_request_pwl_dictOn success, this function returns an EnchantDictionary instance now; previoulsy, a resource was retured.
 enchant_broker_set_dict_pathbroker expects an EnchantBroker instance now; previoulsy, a resource was expected.
 enchant_broker_set_orderingbroker expects an EnchantBroker instance now; previoulsy, a resource was expected.
 enchant_dict_adddictionary expects an EnchantDictionary instance now; previoulsy, a resource was expected.
 enchant_dict_add_to_sessiondictionary expects an EnchantDictionary instance now; previoulsy, a resource was expected.
 enchant_dict_checkdictionary expects an EnchantDictionary instance now; previoulsy, a resource was expected.
 enchant_dict_describedictionary expects an EnchantDictionary instance now; previoulsy, a resource was expected.
 enchant_dict_describePrior to this version, the function returned false on failure.
 enchant_dict_get_errordictionary expects an EnchantDictionary instance now; previoulsy, a resource was expected.
 enchant_dict_is_addeddictionary expects an EnchantDictionary instance now; previoulsy, a resource was expected.
 enchant_dict_quick_checkdictionary expects an EnchantDictionary instance now; previoulsy, a resource was expected.
 enchant_dict_store_replacementdictionary expects an EnchantDictionary instance now; previoulsy, a resource was expected.
 enchant_dict_suggestdictionary expects an EnchantDictionary instance now; previoulsy, a resource was expected.
 error_logdestination and additional_headers are now nullable.
 error_reportingerror_level is nullable now.
 execIf command is empty or contains null bytes, exec now throws a ValueError. Previously it emitted an E_WARNING and returned false.
 exif_read_datarequired_sections is nullable now.
 explodeexplode will now throw ValueError when separator parameter is given an empty string (""). Previously, explode returned false instead.
 fgetcsvlength is now nullable.
 file_get_contentslength is nullable now.
 finfo_buffercontext is nullable now.
 finfo_filecontext is nullable now.
 floatvalThe error level when converting from object was changed from E_NOTICE to E_WARNING.
 floornum no longer accepts internal objects which support numeric conversion.
 fprintfThis function no longer returns false on failure.
 fprintfThrow a ValueError if the number of arguments is zero; previously this function emitted a E_WARNING instead.
 fprintfThrow a ValueError if [width] is less than zero or bigger than PHP_INT_MAX; previously this function emitted a E_WARNING instead.
 fprintfThrow a ValueError if [precision] is less than zero or bigger than PHP_INT_MAX; previously this function emitted a E_WARNING instead.
 fprintfThrow a ArgumentCountError when less arguments are given than required; previously this function emitted a E_WARNING instead.
 fsockopentimeout is nullable now.
 fwritelength is nullable now.
 get_called_classCalling this function from outside a class, will now throw an Error. Previously, an E_WARNING was raised and the function returned false.
 get_classCalling this function from outside a class, without any arguments, will now throw an Error. Previously, an E_WARNING was raised and the function returned false.
 get_class_methodsThe object_or_class parameter now only accepts objects or valid class names.
 get_defined_functionsThe default value of the exclude_disabled parameter has been changed from false to true.
 get_headersThe associative has been changed from int to bool.
 get_parent_classThe object_or_class parameter now only accepts objects or valid class names.
 get_resourcestype is nullable now.
 getdatetimestamp is nullable now.
 getenvThe name is now nullable.
 gmdatetimestamp is nullable now.
 gmmktimehour is no longer optional. If you need a Unix timestamp, use time.
 gmmktimeminute, second, month, day and year are nullable now.
 gmp_binomialThis function no longer returns false on failure.
 gmp_exportThis function no longer returns false on failure.
 gmp_importThis function no longer returns false on failure.
 gmp_random_seedIf seed is invalid, gmp_random_seed now throws a ValueError. Previously it emitted an E_WARNING and returned false.
 gmstrftimetimestamp is nullable now.
 grapheme_substrThe function now consistently clamps out-of-bounds offsets to the string boundary. Previously, false was returned instead of the empty string in some cases.
 gzgetslength is nullable now; previously, the default was 1024.
 gzwritelength is nullable now; previously, the default was 0.
 hashhash now throws a ValueError exception if algo is unknown; previously, false was returned instead.
 hash_hkdfNow throws a ValueError exception on error. Previously, false was returned and an E_WARNING message was emitted.
 hash_hmacNow throws a ValueError exception if algo is unknown or is a non-cryptographic hash function; previously, false was returned instead.
 hash_hmac_fileNow throws a ValueError exception if algo is unknown or is a non-cryptographic hash function; previously, false was returned instead.
 hash_initNow throws an ValueError exception if the algo is unknown or is a non-cryptographic hash function, or if key is empty. Previously, false was returned and an E_WARNING message was emitted.
 hash_pbkdf2Now throws a ValueError exception on error. Previously, false was returned and an E_WARNING message was emitted.
 hash_update_filestream_context is now nullable.
 header_removename is nullable now.
 html_entity_decodeencoding is nullable now.
 htmlentitiesencoding is nullable now.
 http_build_queryarg_separator is now nullable.
 iconv_mime_decodeencoding is nullable now.
 iconv_mime_decode_headersencoding is nullable now.
 iconv_strlenencoding is nullable now.
 iconv_strposencoding is nullable now.
 iconv_strrposencoding is nullable now.
 iconv_substrlength and encoding are nullable now.
 idatetimestamp is nullable now.
 ignore_user_abortenable is nullable now.
 imageaffineclip is now nullable.
 imageaffineOn success, this function returns a GDImage instance now; previously, a resource was returned.
 imagealphablendingimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imageantialiasimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagearcimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagebmpimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagebmpThe type of compressed is bool now; formerly it was int.
 imagecharimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagecharupimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagecolorallocateimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagecolorallocatealphaimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagecoloratimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagecolorclosestimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagecolorclosesthwbimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagecolordeallocateimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagecolorexactimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagecolorexactalphaimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagecolormatchimage1 and image2 expect GdImage instances now; previously, resources were expected.
 imagecolorresolveimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagecolorresolvealphaimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagecolorsetimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagecolorsforindeximage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagecolorsforindeximagecolorsforindex now throws a ValueError exception if color is out of range; previously, false was returned instead.
 imagecolorstotalimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagecolortransparentimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagecolortransparentcolor is now nullable.
 imageconvolutionimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagecopydst_image and src_image expect GdImage instances now; previously, resources were expected.
 imagecopymergedst_image and src_image expect GdImage instances now; previously, resources were expected.
 imagecopymergegraydst_image and src_image expect GdImage instances now; previously, resources were expected.
 imagecopyresampleddst_image and src_image expect GdImage instances now; previously, resources were expected.
 imagecopyresizeddst_image and src_image expect GdImage instances now; previously, resources were expected.
 imagecreateOn success, this function returns a GDImage instance now; previously, a resource was returned.
 imagecreatefrombmpOn success, this function returns a GDImage instance now; previously, a resource was returned.
 imagecreatefromgdOn success, this function returns a GDImage instance now; previously, a resource was returned.
 imagecreatefromgd2On success, this function returns a GDImage instance now; previously, a resource was returned.
 imagecreatefromgd2partOn success, this function returns a GDImage instance now; previously, a resource was returned.
 imagecreatefromgifOn success, this function returns a GDImage instance now; previously, a resource was returned.
 imagecreatefromjpegOn success, this function returns a GDImage instance now; previously, a resource was returned.
 imagecreatefrompngOn success, this function returns a GDImage instance now; previously, a resource was returned.
 imagecreatefromstringOn success, this function returns a GDImage instance now; previously, a resource was returned.
 imagecreatefromtgaOn success, this function returns a GDImage instance now; previously, a resource was returned.
 imagecreatefromwbmpOn success, this function returns a GDImage instance now; previously, a resource was returned.
 imagecreatefromwebpOn success, this function returns a GDImage instance now; previously, a resource was returned.
 imagecreatefromxbmOn success, this function returns a GDImage instance now; previously, a resource was returned.
 imagecreatefromxpmOn success, this function returns a GDImage instance now; previously, a resource was returned.
 imagecreatetruecolorOn success, this function returns a GDImage instance now; previously, a resource was returned.
 imagecropimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagecropOn success, this function returns a GDImage instance now; previously, a resource was returned.
 imagecropautoimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagecropautoOn success, this function returns a GDImage instance now; previously, a resource was returned.
 imagedashedlineimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagedestroyThis function is a NOP now.
 imagedestroyimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imageellipseimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagefillimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagefilledarcimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagefilledellipseimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagefilledpolygonimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagefilledrectangleimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagefilltoborderimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagefilterimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imageflipimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagefttextimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagegammacorrectimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagegdimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagegd2image expects a GdImage instance now; previously, a valid gd resource was expected.
 imagegetclipimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagegetinterpolationimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagegifimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagegrabscreenOn success, this function returns a GDImage instance now; previously, a resource was returned.
 imagegrabwindowOn success, this function returns a GDImage instance now; previously, a resource was returned.
 imagegrabwindowclient_area expects a bool now; previously it expected an int.
 imageinterlaceimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imageinterlaceenable expects a bool now; previously it expected an int.
 imageistruecolorimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagejpegimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagelayereffectimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagelineimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imageopenpolygonimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagepalettecopydst and src expect GdImage instances now; previously, resources were expected.
 imagepalettetotruecolorimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagepngimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagepolygonimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagerectangleimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imageresolutionresolution_x and resolution_y are now nullable.
 imagerotateOn success, this function returns a GDImage instance now; previously, a resource was returned.
 imagerotateimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagerotateThe unused ignore_transparent expects a bool now; previously it expected an int.
 imagesavealphaimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagescaleOn success, this function returns a GDImage instance now; previously, a resource was returned.
 imagescaleimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagesetbrushimage and brush expect GdImage instances now; previously, resources were expected.
 imagesetclipimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagesetinterpolationimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagesetpixelimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagesetthicknessimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagesettileimage and tile expect GdImage instances now; previously, resources were expected.
 imagestringimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagestringupimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagesximage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagesyimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagetruecolortopaletteimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagettfbboxThe options has been added.
 imagettftextThe options has been added.
 imagewbmpimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagewbmpforeground_color is nullable now.
 imagewebpimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagexbmimage expects a GdImage instance now; previously, a valid gd resource was expected.
 imagexbmforeground_color is now nullable.
 imagexbmThe fourth parameter, which was unused, has been removed.
 implodePassing the separator after the array is no longer supported.
 inflate_addcontext expects an InflateContext instance now; previously, a resource was expected.
 inflate_get_read_lencontext expects an InflateContext instance now; previously, a resource was expected.
 inflate_get_statuscontext expects an InflateContext instance now; previously, a resource was expected.
 inflate_initOn success, this function returns an InflateContext instance now; previously, a resource was returned.
 intvalThe error level when converting from object was changed from E_NOTICE to E_WARNING.
 is_numericNumeric strings ending with whitespace ("42 ") will now return true. Previously, false was returned instead.
 jdtounixThis function no longer returns false on failure, but raises a ValueError instead.
 ldap_addcontrols is nullable now; previously, it defaulted to [].
 ldap_add_extcontrols is nullable now; previously, it defaulted to [].
 ldap_bind_extcontrols is nullable now; previously, it defaulted to [].
 ldap_comparecontrols is nullable now; previously, it defaulted to [].
 ldap_control_paged_resultThis function has been removed.
 ldap_control_paged_result_responseThis function has been removed.
 ldap_deletecontrols is nullable now; previously, it defaulted to [].
 ldap_delete_extcontrols is nullable now; previously, it defaulted to [].
 ldap_exop_passwdcontrols is nullable now; previously, it defaulted to [].
 ldap_first_attributeThe unused third parameter ber_identifier is no longer accepted.
 ldap_listcontrols is nullable now; previously, it defaulted to [].
 ldap_mod_addcontrols is nullable now; previously, it defaulted to [].
 ldap_mod_delcontrols is nullable now; previously, it defaulted to [].
 ldap_mod_replacecontrols is nullable now; previously, it defaulted to [].
 ldap_modify_batchcontrols is nullable now; previously, it defaulted to [].
 ldap_mod_add_extcontrols is nullable now; previously, it defaulted to [].
 ldap_mod_del_extcontrols is nullable now; previously, it defaulted to [].
 ldap_mod_replace_extcontrols is nullable now; previously, it defaulted to [].
 ldap_next_attributeThe unused third parameter ber_identifier is no longer accepted.
 ldap_readcontrols is nullable now; previously, it defaulted to [].
 ldap_renamecontrols is nullable now; previously, it defaulted to [].
 ldap_rename_extcontrols is nullable now; previously, it defaulted to [].
 ldap_sasl_binddn, password, mech, realm, authc_id, authz_id and props are nullable now.
 ldap_searchcontrols is nullable now; previously, it defaulted to [].
 ldap_set_rebind_proccallback is nullable now.
 ldap_sortThis function has been removed.
 levenshteinPrior to this version, levenshtein had to be called with either two or five arguments.
 levenshteinPrior to this version, levenshtein would return -1 if one of the argument strings is longer than 255 characters.
 libxml_use_internal_errorsuse_errors is nullable now. Previously, its default was false.
 localtimetimestamp is nullable now.
 maxmax throws a ValueError on failure now; previously, false was returned and an E_WARNING error was emitted.
 maxAs string to number comparisons were changed, max no longer returns a different value based on the argument order in those cases.
 mb_check_encodingvalue and encoding are nullable now.
 mb_chrencoding is nullable now.
 mb_convert_encodingmb_convert_encoding will now throw a ValueError when to_encoding is passed an invalid encoding.
 mb_convert_encodingmb_convert_encoding will now throw a ValueError when from_encoding is passed an invalid encoding.
 mb_convert_encodingfrom_encoding is nullable now.
 mb_convert_kanaencoding is nullable now.
 mb_decode_numericentityencoding is nullable now.
 mb_detect_orderencoding is nullable now.
 mb_encode_mimeheadercharset and transfer_encoding are nullable now.
 mb_encode_numericentityencoding is nullable now.
 mb_encoding_aliasesIf the encoding is unknown, a ValueError is now thrown; previously an E_WARNING was emitted, and the function returned false.
 mb_eregThis function returns true on success now. Previously, it returned the byte length of the matched string if a match for pattern was found in string and matches was passed. If the optional parameter matches was not passed or the length of the matched string was 0, this function returned 1.
 mb_ereg_matchoptions is nullable now.
 mb_ereg_replaceoptions is nullable now.
 mb_ereg_replace_callbackoptions is nullable now.
 mb_ereg_searchpattern and options are nullable now.
 mb_ereg_search_initpattern and options are nullable now.
 mb_ereg_search_pospattern and options are nullable now.
 mb_ereg_search_regspattern and options are nullable now.
 mb_eregiThis function returns true on success now. Previously, it returned the byte length of the matched string if a match for pattern was found in string and matches was passed. If the optional parameter matches was not passed or the length of the matched string was 0, this function returned 1.
 mb_eregi_replaceoptions is nullable now.
 mb_get_infoThe types "func_overload" and "func_overload_list" are no longer supported.
 mb_http_inputtype is nullable now.
 mb_http_outputencoding is nullable now.
 mb_internal_encodingencoding is nullable now.
 mb_internal_encodingNow throws a ValueError if encoding is an invalid encoding. Previously a E_WARNING was emitted instead.
 mb_languagelanguage is nullable now.
 mb_ordencoding is nullable now.
 mb_parse_strThe second parameter was no longer optional.
 mb_regex_encodingencoding is nullable now.
 mb_regex_set_optionsIf the parameter options is given and not null, the previous options are returned. Formerly, the current options have been returned.
 mb_regex_set_optionsoptions is nullable now.
 mb_regex_set_optionsThe "e" option now throws a ValueError.
 mb_scrubencoding is nullable now.
 mb_send_mailadditional_params is nullable now.
 mb_str_splitencoding is nullable now.
 mb_str_splitThis function no longer returns false on failure.
 mb_strcutencoding is nullable now.
 mb_strimwidthencoding is nullable now.
 mb_striposneedle now accepts an empty string.
 mb_striposencoding is nullable now.
 mb_stristrneedle now accepts an empty string.
 mb_stristrencoding is nullable now.
 mb_strlenencoding is nullable now.
 mb_strposneedle now accepts an empty string.
 mb_strposencoding is nullable now.
 mb_strrchrneedle now accepts an empty string.
 mb_strrchrencoding is nullable now.
 mb_strrichrneedle now accepts an empty string.
 mb_strrichrencoding is nullable now.
 mb_strriposneedle now accepts an empty string.
 mb_strriposencoding is nullable now.
 mb_strrposneedle now accepts an empty string.
 mb_strrposPassing the encoding as the third argument instead of an offset has been removed.
 mb_strrposencoding is nullable now.
 mb_strstrneedle now accepts an empty string.
 mb_strstrencoding is nullable now.
 mb_strwidthencoding is nullable now.
 mb_substitute_characterPassing an empty string to substitute_character is no longer supported; "none" should be passed instead.
 mb_substitute_characterencoding is nullable now.
 mb_substrencoding is nullable now.
 mb_substr_countencoding is nullable now.
 metaphoneThe function returned false on failure.
 mhashkey is now nullable.
 minmin throws a ValueError on failure now; previously, false was returned and an E_WARNING error was emitted.
 minAs string to number comparisons were changed, min no longer returns a different value based on the argument order in those cases.
 mktimehour is no longer optional. If you need a Unix timestamp, use time.
 mktimeminute, second, month, day and year are nullable now.
 msg_get_queueOn success, this function returns a SysvMessageQueue instance now; previously, a resource was returned.
 msg_receivequeue expects a SysvMessageQueue instance now; previously, a resource was expected.
 msg_remove_queuequeue expects a SysvMessageQueue instance now; previously, a resource was expected.
 msg_sendqueue expects a SysvMessageQueue instance now; previously, a resource was expected.
 msg_set_queuequeue expects a SysvMessageQueue instance now; previously, a resource was expected.
 msg_stat_queuequeue expects a SysvMessageQueue instance now; previously, a resource was expected.
 number_formatPrior to this version, number_format accepted one, two, or four parameters (but not three).
 ob_implicit_flushThe enable expects a bool value now; previously, an int was expected.
 odbc_columnsschema, table and column are now nullable.
 odbc_errorodbc is nullable now.
 odbc_errormsgodbc is nullable now.
 odbc_execflags was removed.
 odbc_fetch_rowrow is nullable now.
 odbc_procedurecolumnsPrior to this version, the function could only be called with either one or five arguments.
 odbc_proceduresPrior to this version, the function could only be called with either one or four arguments.
 odbc_tablesschema, table and types are now nullable.
 opendircontext is now nullable.
 openssl_csr_exportcsr accepts an OpenSSLCertificateSigningRequest instance now; previously, a resource of type OpenSSL X.509 CSR was accepted.
 openssl_csr_export_to_filecsr accepts an OpenSSLCertificateSigningRequest instance now; previously, a resource of type OpenSSL X.509 CSR was accepted.
 openssl_csr_get_public_keyOn success, this function returns an OpenSSLAsymmetricKey instance now; previously, a resource of type OpenSSL key was returned.
 openssl_csr_get_public_keycsr accepts an OpenSSLCertificateSigningRequest instance now; previously, a resource of type OpenSSL X.509 CSR was accepted.
 openssl_csr_get_subjectcsr accepts an OpenSSLCertificateSigningRequest instance now; previously, a resource of type OpenSSL X.509 CSR was accepted.
 openssl_csr_newOn success, this function returns an OpenSSLCertificateSigningRequest instance now; previously, a resource of type OpenSSL X.509 CSR was returned.
 openssl_csr_newprivate_key accepts an OpenSSLAsymmetricKey instance now; previously, a resource of type OpenSSL key was accepted.
 openssl_csr_signOn success, this function returns an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was returned.
 openssl_csr_signcsr accepts an OpenSSLCertificateSigningRequest instance now; previously, a resource of type OpenSSL X.509 CSR was accepted.
 openssl_csr_signca_certificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was accepted.
 openssl_csr_signprivate_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted.
 openssl_dh_compute_keyprivate_key accepts an OpenSSLAsymmetricKey now; previously, a resource of type OpenSSL key was accepted.
 openssl_free_keyThis function is now deprecated as it doesn't have an effect anymore.
 openssl_free_keykey accepts an OpenSSLAsymmetricKey now; previously, a resource of type OpenSSL key was accepted.
 openssl_openprivate_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 CSR was accepted.
 openssl_opencipher_algo is no longer an optional parameter.
 openssl_pkcs7_decryptprivate_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 CSR was accepted.
 openssl_pkcs7_encryptcertificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 CSR was accepted.
 openssl_pkcs7_signcertificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 CSR was accepted.
 openssl_pkcs7_signprivate_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 CSR was accepted.
 openssl_pkcs7_verifysigners_certificates_filename, untrusted_certificates_filename, content and output_filename are nullable now.
 openssl_pkcs12_exportcertificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 CSR was accepted.
 openssl_pkcs12_exportprivate_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted.
 openssl_pkcs12_export_to_filecertificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 CSR was accepted.
 openssl_pkcs12_export_to_fileprivate_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted.
 openssl_pkey_exportkey accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted.
 openssl_pkey_export_to_filekey accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted.
 openssl_pkey_freeThis function is now deprecated as it doesn't have an effect anymore.
 openssl_pkey_freekey accepts an OpenSSLAsymmetricKey now; previously, a resource of type OpenSSL key was accepted.
 openssl_pkey_get_detailskey accepts an OpenSSLAsymmetricKey now; previously, a resource of type OpenSSL key was accepted.
 openssl_pkey_get_privateOn success, this function returns an OpenSSLAsymmetricKey instance now; previously, a resource of type OpenSSL key was returned.
 openssl_pkey_get_privateprivate_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted.
 openssl_pkey_get_privatepassphrase is nullable now.
 openssl_pkey_get_publicOn success, this function returns an OpenSSLAsymmetricKey instance now; previously, a resource of type OpenSSL key was returned.
 openssl_pkey_get_publicpublic_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted.
 openssl_pkey_newOn success, this function returns an OpenSSLAsymmetricKey instance now; previously, a resource of type OpenSSL key was returned.
 openssl_private_decryptprivate_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted.
 openssl_private_encryptprivate_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted.
 openssl_public_decryptpublic_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted.
 openssl_public_encryptpublic_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted.
 openssl_random_pseudo_bytesstrong_result is nullable now.
 openssl_sealpublic_key accepts an array of OpenSSLAsymmetricKey instances now; previously, an array of resources of type OpenSSL key was accepted.
 openssl_sealcipher_algo is no longer an optional parameter.
 openssl_sealiv is nullable now.
 openssl_signprivate_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted.
 openssl_spki_newprivate_key accepts an OpenSSLAsymmetricKey instance now; previously, a resource of type OpenSSL key was accepted.
 openssl_verifypublic_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted.
 openssl_x509_check_private_keycertificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was accepted.
 openssl_x509_check_private_keyprivate_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted.
 openssl_x509_checkpurposecertificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was accepted.
 openssl_x509_checkpurposeuntrusted_certificates_file is nullable now.
 openssl_x509_exportcertificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was accepted.
 openssl_x509_export_to_filecertificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was accepted.
 openssl_x509_fingerprintcertificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was accepted.
 openssl_x509_freeThis function is now deprecated as it doesn't have an effect anymore.
 openssl_x509_freecertificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was accepted.
 openssl_x509_parsecertificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was accepted.
 openssl_x509_readOn success, this function returns an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was returned.
 openssl_x509_readcertificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was accepted.
 openssl_x509_verifycertificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was accepted.
 openssl_x509_verifypublic_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted.
 packThis function no longer returns false on failure.
 parse_strresult is no longer optional.
 parse_urlparse_url will now distinguish absent and empty queries and fragments.
 passthruIf command is empty or contains null bytes, passthru now throws a ValueError. Previously it emitted an E_WARNING and returned false.
 password_hashpassword_hash no longer returns false on failure, instead a ValueError will be thrown if the password hashing algorithm is not valid, or an Error if the password hashing failed for an unknown error.
 password_hashThe algo parameter is nullable now.
 pcntl_async_signalsenable is nullable now.
 pcntl_getpriorityprocess_id is nullable now.
 pcntl_setpriorityprocess_id is nullable now.
 pfsockopentimeout is nullable now.
 pg_client_encodingconnection is now nullable.
 pg_closeconnection is now nullable.
 pg_dbnameconnection is now nullable.
 pg_end_copyconnection is now nullable.
 pg_fetch_allpg_fetch_all will now return an empty array instead of false for result sets with zero rows.
 pg_hostconnection is now nullable.
 pg_last_errorconnection is now nullable.
 pg_lo_writelength is now nullable.
 pg_optionsconnection is now nullable.
 pg_pingconnection is now nullable.
 pg_portconnection is now nullable.
 pg_traceconnection is now nullable.
 pg_ttyconnection is now nullable.
 pg_untraceconnection is now nullable.
 pg_versionconnection is now nullable.
 phpversionextension is nullable now.
 printfThis function no longer returns false on failure.
 printfThrow a ValueError if the number of arguments is zero; previously this function emitted a E_WARNING instead.
 printfThrow a ValueError if [width] is less than zero or bigger than PHP_INT_MAX; previously this function emitted a E_WARNING instead.
 printfThrow a ValueError if [precision] is less than zero or bigger than PHP_INT_MAX; previously this function emitted a E_WARNING instead.
 printfThrow a ArgumentCountError when less arguments are given than required; previously this function emitted a E_WARNING instead.
 readdirdir_handle is now nullable.
 readline_infovar_name and value are nullable now.
 readline_read_historyfilename is nullable now.
 readline_write_historyfilename is nullable now.
 rewinddirdir_handle is now nullable.
 roundnum no longer accepts internal objects which support numeric conversion.
 sapi_windows_vt100_supportenable is now nullable.
 scandircontext is now nullable.
 sem_acquiresemaphore expects a SysvSemaphore instance now; previously, a resource was expected.
 sem_getOn success, this function returns a SysvSemaphore instance now; previously, a resource was returned.
 sem_getThe type of auto_release has been changed from int to bool.
 sem_releasesemaphore expects a SysvSemaphore instance now; previously, a resource was expected.
 sem_removesemaphore expects a SysvSemaphore instance now; previously, a resource was expected.
 session_cache_expirevalue is nullable now.
 session_cache_limitervalue is nullable now.
 session_idid is nullable now.
 session_module_namemodule is nullable now.
 session_namename is nullable now.
 session_save_pathpath is nullable now.
 session_set_cookie_paramspath, domain, secure and httponly are nullable now.
 set_error_handlererrcontext was removed, and will no longer be passed to user callbacks.
 shm_attachOn success, this function returns an SysvSharedMemory instance now; previously, a resource was returned.
 shm_attachsize is nullable now.
 shm_detachshm expects a SysvSharedMemory instance now; previously, a resource was expected.
 shm_get_varshm expects a SysvSharedMemory instance now; previously, a resource was expected.
 shm_has_varshm expects a SysvSharedMemory instance now; previously, a resource was expected.
 shm_put_varshm expects a SysvSharedMemory instance now; previously, a resource was expected.
 shm_removeshm expects a SysvSharedMemory instance now; previously, a resource was expected.
 shm_remove_varshm expects a SysvSharedMemory instance now; previously, a resource was expected.
 shmop_closeshmop expects a Shmop instance now; previously, a resource was expected.
 shmop_deleteshmop expects a Shmop instance now; previously, a resource was expected.
 shmop_openOn success, this function returns an Shmop instance now; previously, a resource was returned.
 shmop_openIf mode is invalid, or size is less than or equal to zero, a ValueError is thrown; previously E_WARNING was emitted instead, and the function returned false.
 shmop_readshmop expects a Shmop instance now; previously, a resource was expected.
 shmop_readIf offset or size are out of range, a ValueError is thrown; previously E_WARNING was emitted, and false was returned,
 shmop_sizeshmop expects a Shmop instance now; previously, a resource was expected.
 shmop_writePrior to PHP 8.0.0, false was returned on failure.
 shmop_writeshmop expects a Shmop instance now; previously, a resource was expected.
 sleepThe function throws a ValueError on negative seconds; previously, an E_WARNING was raised instead, and the function returned false.
 socket_acceptOn success, this function returns a Socket instance now; previously, a resource was returned.
 socket_addrinfo_bindOn success, this function returns a Socket instance now; previously, a resource was returned.
 socket_addrinfo_bindaddress is an AddressInfo instance now; previously, it was a resource.
 socket_addrinfo_connectOn success, this function returns a Socket instance now; previously, a resource was returned.
 socket_addrinfo_connectaddress is an AddressInfo instance now; previously, it was a resource.
 socket_addrinfo_explainaddress is an AddressInfo instance now; previously, it was a resource.
 socket_addrinfo_lookupOn success, this function returns a array of AddressInfo instances now; previously, an array of resources was returned.
 socket_addrinfo_lookupservice is nullable now.
 socket_bindsocket is a Socket instance now; previously, it was a resource.
 socket_clear_errorsocket is a Socket instance now; previously, it was a resource.
 socket_clear_errorsocket is nullable now.
 socket_closesocket is a Socket instance now; previously, it was a resource.
 socket_connectsocket is a Socket instance now; previously, it was a resource.
 socket_connectport is nullable now.
 socket_createOn success, this function returns a Socket instance now; previously, a resource was returned.
 socket_create_listenOn success, this function returns a Socket instance now; previously, a resource was returned.
 socket_create_pairpair is a reference to an array of Socket instances now; previously, it was a reference to an array of resources.
 socket_export_streamsocket is a Socket instance now; previously, it was a resource.
 socket_get_optionsocket is a Socket instance now; previously, it was a resource.
 socket_getpeernamesocket is a Socket instance now; previously, it was a resource.
 socket_getsocknamesocket is a Socket instance now; previously, it was a resource.
 socket_import_streamOn success, this function returns a Socket instance now; previously, a resource was returned.
 socket_last_errorsocket is a Socket instance now; previously, it was a resource.
 socket_last_errorsocket is nullable now.
 socket_listensocket is a Socket instance now; previously, it was a resource.
 socket_readsocket is a Socket instance now; previously, it was a resource.
 socket_recvsocket is a Socket instance now; previously, it was a resource.
 socket_recvfromsocket is a Socket instance now; previously, it was a resource.
 socket_recvmsgsocket is a Socket instance now; previously, it was a resource.
 socket_sendsocket is a Socket instance now; previously, it was a resource.
 socket_sendmsgsocket is a Socket instance now; previously, it was a resource.
 socket_sendtosocket is a Socket instance now; previously, it was a resource.
 socket_sendtoport is nullable now.
 socket_set_blocksocket is a Socket instance now; previously, it was a resource.
 socket_set_nonblocksocket is a Socket instance now; previously, it was a resource.
 socket_set_optionsocket is a Socket instance now; previously, it was a resource.
 socket_shutdownsocket is a Socket instance now; previously, it was a resource.
 socket_writesocket is a Socket instance now; previously, it was a resource.
 socket_writelength is nullable now.
 socket_wsaprotocol_info_exportsocket is a Socket instance now; previously, it was a resource.
 socket_wsaprotocol_info_importOn success, this function returns a Socket instance now; previously, a resource was returned.
 soundexPrior to this version, calling the function with an empty string returned false for no particular reason.
 spl_autoloadfile_extensions is now nullable.
 spl_autoload_extensionsfile_extensions is now nullable.
 spl_autoload_functionsReturn value was updated to always be an array; previously this function returned false if the autoload queue wasn't activated.
 spl_autoload_registercallback is now nullable.
 sprintfThis function no longer returns false on failure.
 sprintfThrow a ValueError if the number of arguments is zero; previously this function emitted a E_WARNING instead.
 sprintfThrow a ValueError if [width] is less than zero or bigger than PHP_INT_MAX; previously this function emitted a E_WARNING instead.
 sprintfThrow a ValueError if [precision] is less than zero or bigger than PHP_INT_MAX; previously this function emitted a E_WARNING instead.
 sprintfThrow a ArgumentCountError when less arguments are given than required; previously this function emitted a E_WARNING instead.
 str_splitIf length is less than 1, a ValueError will be thrown now; previously, an error of level E_WARNING has been raised instead, and the function returned false.
 str_word_countcharacters is nullable now.
 strcspnlength is nullable now.
 stream_context_createoptions and params are now nullable.
 stream_context_get_defaultoptions is now nullable.
 stream_copy_to_streamlength is now nullable.
 stream_get_contentslength is now nullable.
 stream_set_chunk_sizeA ValueError is now thrown if size is less than 1 or greater than PHP_INT_MAX. Previously, an E_WARNING level error was emitted and false was returned.
 stream_socket_accepttimeout is now nullable.
 stream_socket_clienttimeout and context are now nullable.
 stream_socket_enable_cryptosession_stream is now nullable.
 stream_socket_servercontext is nullable now.
 strftimetimestamp is nullable now.
 strip_tagsallowed_tags is nullable now.
 striposneedle now accepts an empty string.
 striposPassing an int as needle is no longer supported.
 stristrneedle now accepts an empty string.
 stristrPassing an int as needle is no longer supported.
 strposneedle now accepts an empty string.
 strposPassing an int as needle is no longer supported.
 strrchrneedle now accepts an empty string.
 strrchrPassing an int as needle is no longer supported.
 strriposneedle now accepts an empty string.
 strriposPassing an int as needle is no longer supported.
 strrposneedle now accepts an empty string.
 strrposPassing an int as needle is no longer supported.
 strspnlength is nullable now.
 strstrneedle now accepts an empty string.
 strstrPassing an int as needle is no longer supported.
 strtotimebaseTimestamp is nullable now.
 substrlength is nullable now. When length is explicitly set to null, the function returns a substring finishing at the end of the string, when it previously returned an empty string.
 substrThe function returns an empty string where it previously returned false.
 substr_comparelength is nullable now.
 substr_countlength is nullable now.
 substr_replacelength is nullable now.
 touchmtime and atime are now nullable.
 trigger_errorThe function now throws a ValueError if an invalid error_level is specified. Previously, it returned false.
 uasortIf callback expects a parameter to be passed by reference, this function will now emit an E_WARNING.
 uksortIf callback expects a parameter to be passed by reference, this function will now emit an E_WARNING.
 umaskmask is nullable now.
 unixtojdtimestamp is nullable now.
 usortIf callback expects a parameter to be passed by reference, this function will now emit an E_WARNING.
 vfprintfThis function no longer returns false on failure.
 vfprintfThrow a ValueError if the number of arguments is zero; previously this function emitted a E_WARNING instead.
 vfprintfThrow a ValueError if [width] is less than zero or bigger than PHP_INT_MAX; previously this function emitted a E_WARNING instead.
 vfprintfThrow a ValueError if [precision] is less than zero or bigger than PHP_INT_MAX; previously this function emitted a E_WARNING instead.
 vfprintfThrow a ValueError when less arguments are given than required; previously this function emitted a E_WARNING instead.
 vprintfThis function no longer returns false on failure.
 vprintfThrow a ValueError if the number of arguments is zero; previously this function emitted a E_WARNING instead.
 vprintfThrow a ValueError if [width] is less than zero or bigger than PHP_INT_MAX; previously this function emitted a E_WARNING instead.
 vprintfThrow a ValueError if [precision] is less than zero or bigger than PHP_INT_MAX; previously this function emitted a E_WARNING instead.
 vprintfThrow a ValueError when less arguments are given than required; previously this function emitted a E_WARNING instead.
 vsprintfThis function no longer returns false on failure.
 vsprintfThrow a ValueError if the number of arguments is zero; previously this function emitted a E_WARNING instead.
 vsprintfThrow a ValueError if [width] is less than zero or bigger than PHP_INT_MAX; previously this function emitted a E_WARNING instead.
 vsprintfThrow a ValueError if [precision] is less than zero or bigger than PHP_INT_MAX; previously this function emitted a E_WARNING instead.
 vsprintfThrow a ValueError when less arguments are given than required; previously this function emitted a E_WARNING instead.
 wordwrapIf break is empty string, a ValueError is thrown; previously in this case it emitted an E_WARNING and returned false.
 xml_get_current_byte_indexparser expects an XMLParser instance now; previously, a valid xml resource was expected.
 xml_get_current_column_numberparser expects an XMLParser instance now; previously, a valid xml resource was expected.
 xml_get_current_line_numberparser expects an XMLParser instance now; previously, a valid xml resource was expected.
 xml_get_error_codeparser expects an XMLParser instance now; previously, a valid xml resource was expected.
 xml_parseparser expects an XMLParser instance now; previously, a valid xml resource was expected.
 xml_parse_into_structparser expects an XMLParser instance now; previously, a valid xml resource was expected.
 xml_parser_createThis function returns an XMLParser instance now; previously, a resource was returned, or false on failure.
 xml_parser_createencoding is nullable now.
 xml_parser_create_nsThis function returns an XMLParser instance now; previously, a resource was returned, or false on failure.
 xml_parser_create_nsencoding is nullable now.
 xml_parser_freeparser expects an XMLParser instance now; previously, a valid xml resource was expected.
 xml_parser_get_optionparser expects an XMLParser instance now; previously, a valid xml resource was expected.
 xml_parser_get_optionA ValueError is now thrown if option is invalid.
 xml_parser_set_optionparser expects an XMLParser instance now; previously, a valid xml resource was expected.
 xml_parser_set_optionA ValueError is now thrown if option is invalid.
 xml_set_character_data_handlerparser expects an XMLParser instance now; previously, a valid xml resource was expected.
 xml_set_default_handlerparser expects an XMLParser instance now; previously, a valid xml resource was expected.
 xml_set_element_handlerparser expects an XMLParser instance now; previously, a valid xml resource was expected.
 xml_set_end_namespace_decl_handlerparser expects an XMLParser instance now; previously, a valid xml resource was expected.
 xml_set_external_entity_ref_handlerparser expects an XMLParser instance now; previously, a valid xml resource was expected.
 xml_set_notation_decl_handlerparser expects an XMLParser instance now; previously, a valid xml resource was expected.
 xml_set_objectparser expects an XMLParser instance now; previously, a valid xml resource was expected.
 xml_set_processing_instruction_handlerparser expects an XMLParser instance now; previously, a valid xml resource was expected.
 xml_set_start_namespace_decl_handlerparser expects an XMLParser instance now; previously, a valid xml resource was expected.
 xml_set_unparsed_entity_decl_handlerparser expects an XMLParser instance now; previously, a valid xml resource was expected.
 zip_closeThis function is deprecated in favor of the Object API, see ZipArchive::close.
 zip_entry_closeThis function is deprecated in favor of the Object API.
 zip_entry_compressedsizeThis function is deprecated in favor of the Object API, see ZipArchive::statIndex.
 zip_entry_compressionmethodThis function is deprecated in favor of the Object API, see ZipArchive::statIndex.
 zip_entry_filesizeThis function is deprecated in favor of the Object API, see ZipArchive::statIndex.
 zip_entry_nameThis function is deprecated in favor of the Object API, see ZipArchive::statIndex.
 zip_entry_openThis function is deprecated in favor of the Object API.
 zip_entry_readThis function is deprecated in favor of the Object API, see ZipArchive::getFromIndex.
 zip_openThis function is deprecated in favor of the Object API, see ZipArchive::open.
 zip_readThis function is deprecated in favor of the Object API, see ZipArchive::statIndex.
 GlobIterator::__constructNow throws a ValueError if directory is an empty string; previously it threw a RuntimeException.
 IntlCalendar::setMinimalDaysInFirstWeekA ValueError is now thrown on invalid input. Previously, false was returned.
 IntlTimeZone::getIDForWindowsIDregion is now nullable.
 LimitIterator::__constructNow throws a ValueError if offset is less than 0; previously it threw a RuntimeException.
 LimitIterator::__constructNow throws a ValueError if limit is less than -1; previously it threw a RuntimeException.
 Locale::getDisplayLanguagedisplayLocale is nullable now.
 Locale::getDisplayNamedisplayLocale is nullable now.
 Locale::getDisplayRegiondisplayLocale is nullable now.
 Locale::getDisplayScriptdisplayLocale is nullable now.
 Locale::getDisplayVariantdisplayLocale is nullable now.
 mysqli_result::fetch_objectconstructor_args now accepts [] for constructors with 0 parameters; previously an exception was thrown.
 mysqli_result::field_seekThis function now always returns true. Previously it returned false on failure.
 mysqli_stmt::closeThis function now always returns true. Previously it returned false on failure.
 mysqli_stmt::__constructquery is now nullable.
 mysqli::begin_transactionname is now nullable.
 mysqli::closeThis function now always returns true. Previously it returned false on failure.
 mysqli::commitname is now nullable.
 mysqli::debugThis function now always returns true. Previously it returned false on failure.
 mysqli::rollbackname is now nullable.
 NumberFormatter::createpattern is nullable now.
 PDOStatement::fetchAllThis method always returns an array now, while previously false may have been returned on failure.
 Phar::addFilelocalName is now nullable.
 Phar::buildFromIteratorbaseDirectory is now nullable.
 Phar::compressextension is now nullable.
 Phar::convertToDataformat, compression, and extension are now nullable.
 Phar::convertToExecutableformat, compression, and extension are now nullable.
 Phar::createDefaultStubindex and webIndex are now nullable.
 Phar::decompressextension is now nullable.
 Phar::getMetadataThe parameter unserializeOptions has been added.
 Phar::setDefaultStubwebIndex is nullable now.
 Phar::setSignatureAlgorithmprivateKey is now nullable.
 Phar::webPharfileNotFoundScript and rewrite are nullable now.
 PharData::addFilelocalName is now nullable.
 PharData::buildFromIteratorbaseDirectory is now nullable.
 PharData::compressextension is now nullable.
 PharData::convertToDataformat, compression, and extension are now nullable.
 PharData::convertToExecutableformat, compression, and localName are now nullable.
 PharData::decompressextension is now nullable.
 PharData::setDefaultStubwebIndex is nullable now.
 PharData::setSignatureAlgorithmprivateKey is now nullable.
 PharFileInfo::getMetadataThe parameter unserializeOptions has been added.
 PharFileInfo::isCompressedcompression is now nullable.
 RecursiveDirectoryIterator::__constructNow throws a ValueError if directory is an empty string; previously it threw a RuntimeException.
 RecursiveIteratorIterator::getSubIteratorlevel is now nullable.
 ReflectionClass::getConstantsfilter has been added.
 ReflectionClass::getReflectionConstantsfilter has been added.
 ReflectionFunction::invokeArgsargs keys will now be interpreted as parameter names, instead of being silently ignored.
 ReflectionMethod::getClosureobject is now nullable.
 ReflectionMethod::invokeArgsargs keys will now be interpreted as parameter names, instead of being silently ignored.
 ReflectionParameter::getDefaultValueThis method now allows getting the default value of parameters of built-in functions and built-in class methods. Previously, a ReflectionException was thrown.
 ReflectionParameter::getDefaultValueConstantNameThis method now allows getting the default values' constant names of built-in functions and built-in class methods. Previously, a ReflectionException was thrown.
 ReflectionProperty::getValueobject is nullable now.
 ReflectionProperty::isInitializedobject is nullable now.
 ReflectionType::__toStringReflectionType::__toString has been undeprecated.
 SimpleXMLElement::asXMLfilename is nullable now.
 SoapClient::__doRequestThe type of oneWay is bool now; formerly it was int.
 SoapClient::__setCookievalue is now nullable.
 SoapServer::handlerequest is now nullable.
 SplFileInfo::getFileInfoclass is now nullable.
 SplFileInfo::getPathInfoclass is now nullable.
 SplFileInfo::openFilecontext is now nullable.
 SplFixedArray::__constructNow throws a ValueError if size is a negative; previously it threw a InvalidArgumentException.
 tidy::__constructfilename, config, encoding and useIncludePath are nullable now.
 tidy::parseFileconfig and encoding are nullable now.
 tidy::parseStringconfig and encoding are nullable now.
 tidy::repairFiletidy::repairFile is a static method now.
 tidy::repairFileconfig and encoding are nullable now.
 tidy::repairStringtidy::repairString is a static method now.
 tidy::repairStringconfig and encoding are nullable now.
 tidy::repairStringThis function no longer accepts the useIncludePath parameter.
 XMLReader::getAttributeThis function can no longer return false.
 XMLReader::getAttributeNsThis function can no longer return false.
 XMLReader::lookupNamespaceThis function can no longer return false.
 XMLReader::nextname is nullable now.
 XMLReader::openXMLReader::open is now declared as static method, but can still be called on an XMLReader instance.
 XMLReader::XMLXMLReader::XML is now declared as static method, but can still be called on an XMLReader instance.
 XMLWriter::endAttributewriter expects an XMLWriter instance now; previously, a resource was expected.
 XMLWriter::endCdatawriter expects an XMLWriter instance now; previously, a resource was expected.
 XMLWriter::endCommentwriter expects an XMLWriter instance now; previously, a resource was expected.
 XMLWriter::endDocumentwriter expects an XMLWriter instance now; previously, a resource was expected.
 XMLWriter::endDtdwriter expects an XMLWriter instance now; previously, a resource was expected.
 XMLWriter::endDtdAttlistwriter expects an XMLWriter instance now; previously, a resource was expected.
 XMLWriter::endDtdElementwriter expects an XMLWriter instance now; previously, a resource was expected.
 XMLWriter::endDtdEntitywriter expects an XMLWriter instance now; previously, a resource was expected.
 XMLWriter::endElementwriter expects an XMLWriter instance now; previously, a resource was expected.
 XMLWriter::endPiwriter expects an XMLWriter instance now; previously, a resource was expected.
 XMLWriter::flushwriter expects an XMLWriter instance now; previously, a resource was expected.
 XMLWriter::flushThis function can no longer return false.
 XMLWriter::fullEndElementwriter expects an XMLWriter instance now; previously, a resource was expected.
 XMLWriter::openMemoryThis function returns now an XMLWriter instance on success. Previouly, a resource has been returned in this case.
 XMLWriter::openUriThis function returns now an XMLWriter instance on success. Previouly, a resource has been returned in this case.
 XMLWriter::outputMemorywriter expects an XMLWriter instance now; previously, a resource was expected.
 XMLWriter::setIndentwriter expects an XMLWriter instance now; previously, a resource was expected.
 XMLWriter::setIndentStringwriter expects an XMLWriter instance now; previously, a resource was expected.
 XMLWriter::startAttributewriter expects an XMLWriter instance now; previously, a resource was expected.
 XMLWriter::startAttributeNswriter expects an XMLWriter instance now; previously, a resource was expected.
 XMLWriter::startAttributeNsprefix is nullable now.
 XMLWriter::startCdatawriter expects an XMLWriter instance now; previously, a resource was expected.
 XMLWriter::startCommentwriter expects an XMLWriter instance now; previously, a resource was expected.
 XMLWriter::startDocumentwriter expects an XMLWriter instance now; previously, a resource was expected.
 XMLWriter::startDtdwriter expects an XMLWriter instance now; previously, a resource was expected.
 XMLWriter::startDtdAttlistwriter expects an XMLWriter instance now; previously, a resource was expected.
 XMLWriter::startDtdElementwriter expects an XMLWriter instance now; previously, a resource was expected.
 XMLWriter::startDtdEntitywriter expects an XMLWriter instance now; previously, a resource was expected.
 XMLWriter::startElementwriter expects an XMLWriter instance now; previously, a resource was expected.
 XMLWriter::startElementNswriter expects an XMLWriter instance now; previously, a resource was expected.
 XMLWriter::startPiwriter expects an XMLWriter instance now; previously, a resource was expected.
 XMLWriter::textwriter expects an XMLWriter instance now; previously, a resource was expected.
 XMLWriter::writeAttributewriter expects an XMLWriter instance now; previously, a resource was expected.
 XMLWriter::writeAttributeNswriter expects an XMLWriter instance now; previously, a resource was expected.
 XMLWriter::writeCdatawriter expects an XMLWriter instance now; previously, a resource was expected.
 XMLWriter::writeCommentwriter expects an XMLWriter instance now; previously, a resource was expected.
 XMLWriter::writeDtdwriter expects an XMLWriter instance now; previously, a resource was expected.
 XMLWriter::writeDtdAttlistwriter expects an XMLWriter instance now; previously, a resource was expected.
 XMLWriter::writeDtdElementwriter expects an XMLWriter instance now; previously, a resource was expected.
 XMLWriter::writeDtdEntitywriter expects an XMLWriter instance now; previously, a resource was expected.
 XMLWriter::writeDtdEntitypublicId, systemId and notationData are nullable now.
 XMLWriter::writeElementwriter expects an XMLWriter instance now; previously, a resource was expected.
 XMLWriter::writeElementNswriter expects an XMLWriter instance now; previously, a resource was expected.
 XMLWriter::writePiwriter expects an XMLWriter instance now; previously, a resource was expected.
 XMLWriter::writeRawwriter expects an XMLWriter instance now; previously, a resource was expected.
 ZipArchive::addEmptyDirflags was added.
 ZipArchive::addFileflags was added.
 ZipArchive::addFromStringflags was added.
 ZipArchive::addGlob"flags" in options was added.
 ZipArchive::addGlob"comp_method", "comp_flags", "enc_method" and "enc_password" in options were added.
 ZipArchive::getStatusStringThis method can be called on closed archive.
 ZipArchive::getStatusStringThis method no longer returns false on failure.
 ZipArchive::setEncryptionIndexpassword is now nullable.
 ZipArchive::setEncryptionNamepassword is now nullable.
7.4.12jdtounixThe upper limit of julian_day has been extended. Previously, it was 2465342 regardless of the architecture.
 tidyNode::isHtmlThis function has been fixed to have reasonable behavior. Previously, almost any node was reported as being an HTML node.
7.4.4proc_openAdded the create_new_console option to the options parameter.
7.4.3curl_setoptIntroduced CURLOPT_HTTP09_ALLOWED.
7.4.2dba_openThe lmdb driver now supports an additional map_size parameter.
 dba_popenThe lmdb driver now supports an additional map_size parameter.
7.4.0DatePeriod::__constructrecurrences must be greater than 0 now.
 array_mergeThis function can now be called without any parameter. Formerly, at least one parameter has been required.
 array_merge_recursiveThis function can now be called without any parameter. Formerly, at least one parameter has been required.
 base_convertPassing invalid characters will now generate a deprecation notice. The result will still be computed as if the invalid characters did not exist.
 bindecPassing invalid characters will now generate a deprecation notice. The result will still be computed as if the invalid characters did not exist.
 chrThe function no longer silently accepts unsupported codepoints, and casts these to 0.
 curl_versionThe optional age parameter has been deprecated; if a value is passed, it is ignored.
 currentInstances of SPL classes are now treated like empty objects that have no properties instead of calling the Iterator method with the same name as this function.
 endInstances of SPL classes are now treated like empty objects that have no properties instead of calling the Iterator method with the same name as this function.
 fgetcsvThe escape parameter now also accepts an empty string to disable the proprietary escape mechanism.
 fputcsvThe escape parameter now also accepts an empty string to disable the proprietary escape mechanism.
 get_declared_classesPreviously get_declared_classes always returned parent classes before child classes. This is no longer the case. No particular order is guaranteed for the get_declared_classes return value.
 get_magic_quotes_gpcThis function has been deprecated.
 get_magic_quotes_runtimeThis function has been deprecated.
 gzreadThis functions returns false on failure now; previously 0 was returned.
 gzwriteThis functions returns false on failure now; previously 0 was returned.
 hash_algosSupport for crc32c has been added.
 hexdecPassing invalid characters will now generate a deprecation notice. The result will still be computed as if the invalid characters did not exist.
 idn_to_asciiThe default value of variant is now INTL_IDNA_VARIANT_UTS46 instead of the deprecated INTL_IDNA_VARIANT_2003.
 idn_to_utf8The default value of variant is now INTL_IDNA_VARIANT_UTS46 instead of the deprecated INTL_IDNA_VARIANT_2003.
 imagecropautoThe behavior of imagecropauto() in the bundled libgd has been synced with that of system libgd: IMG_CROP_DEFAULT no longer falls back to IMG_CROP_SIDES and threshold-cropping now uses the same algorithm as system libgd.
 imagecropautoThe default value of mode has been changed to IMG_CROP_AUTO. Formerly, the default value has been -1 which corresponds to IMG_CROP_DEFAULT, but passing -1 is now deprecated.
 imagefilterScatter support (IMG_FILTER_SCATTER) was added.
 implodePassing the separator after the array (i.e. using the legacy signature) has been deprecated.
 keyInstances of SPL classes are now treated like empty objects that have no properties instead of calling the Iterator method with the same name as this function.
 ldap_control_paged_resultThis function has been deprecated.
 ldap_control_paged_result_responseThis function has been deprecated.
 money_formatThis function has been deprecated. Instead, use NumberFormatter::formatCurrency.
 nextInstances of SPL classes are now treated like empty objects that have no properties instead of calling the Iterator method with the same name as this function.
 octdecPassing invalid characters will now generate a deprecation notice. The result will still be computed as if the invalid characters did not exist.
 openssl_random_pseudo_bytesThe function no longer returns false on failure, but throws an Exception instead.
 password_hashThe algo parameter expects a string now, but still accepts ints for backward compatibility.
 password_hashThe sodium extension provides an alternative implementation for Argon2 passwords.
 password_needs_rehashThe algo parameter expects a string now, but still accepts ints for backward compatibility.
 preg_replace_callbackThe flags parameter was added.
 preg_replace_callback_arrayThe flags parameter was added.
 prevInstances of SPL classes are now treated like empty objects that have no properties instead of calling the Iterator method with the same name as this function.
 proc_openproc_open now also accepts an array for the command.
 proc_openAdded the create_process_group option to the options parameter.
 resetInstances of SPL classes are now treated like empty objects that have no properties instead of calling the Iterator method with the same name as this function.
 statOn Windows, the device number is now the serial number of the volume that contains the file, and the inode number is the identifier associated with the file.
 statThe size, atime, mtime and ctime statistics of symlinks are always those of the target. This was previously not the case for NTS builds on Windows.
 str_getcsvThe escape parameter now interprets an empty string as signal to disable the proprietary escape mechanism. Formerly, an empty string was treated like the default parameter value.
 strip_tagsThe allowed_tags now alternatively accepts an array.
 unserializeAdded the max_depth element of options to set the maximum depth of structures permitted during unserialization.
 Locale::lookupdefaultLocale is nullable now.
 mysqli::__constructAll parameters are now nullable.
 mysqli::real_connectAll parameters are now nullable.
 SplFileObject::fgetcsvThe escape parameter now also accepts an empty string to disable the proprietary escape mechanism.
 SplFileObject::fputcsvThe escape parameter now also accepts an empty string to disable the proprietary escape mechanism.
 SplFileObject::fwriteThe function now returns false instead of zero on failure.
 SplFileObject::getCsvControlThe escape character can now be an empty string.
 SplFileObject::setCsvControlThe escape parameter now also accepts an empty string to disable the proprietary escape mechanism.
 SQLite3Stmt::bindParamparam now also supports the @param notation.
 SQLite3Stmt::bindValueparam now also supports the @param notation.
7.3.24jdtounixThe upper limit of julian_day has been extended. Previously, it was 2465342 regardless of the architecture.
 tidyNode::isHtmlThis function has been fixed to have reasonable behavior. Previously, almost any node was reported as being an HTML node.
7.3.15curl_setoptIntroduced CURLOPT_HTTP09_ALLOWED.
7.3.14dba_openThe lmdb driver now supports an additional map_size parameter.
 dba_popenThe lmdb driver now supports an additional map_size parameter.
7.3.6DatePeriod::__constructrecurrences must be greater than 0 now.
 SplFileObject::__toStringChanged from an alias of SplFileObject::current to an alias of SplFileObject::fgets.
7.3.5substr_compareoffset may now be equal to the length of haystack.
7.3.0DateTimeImmutable::createFromFormatThe v format specifier has been added.
 apache_request_headersThis function became available in the FPM SAPI.
 array_pushThis function can now be called with only one parameter. Formerly, at least two parameters have been required.
 array_unshiftThis function can now be called with only one parameter. Formerly, at least two parameters have been required.
 assertDeclaring a function called assert() inside a namespace became deprecated. Such declaration now emits an E_DEPRECATED.
 bcmulbcmul now returns numbers with the requested scale. Formerly, the returned numbers may have omitted trailing decimal zeroes.
 bcpowbcpow now returns numbers with the requested scale. Formerly, the returned numbers may have omitted trailing decimal zeroes.
 bcscalebcscale can now be used to get the current scale factor; when used as setter, it now returns the old scale value. Formerly, scale was mandatory, and bcscale always returned true.
 compactcompact now issues an E_NOTICE level error if a given string refers to an unset variable. Formerly, such strings have been silently skipped.
 curl_getinfoIntroduced CURLINFO_CONTENT_LENGTH_DOWNLOAD_T, CURLINFO_CONTENT_LENGTH_UPLOAD_T, CURLINFO_HTTP_VERSION, CURLINFO_PROTOCOL, CURLINFO_PROXY_SSL_VERIFYRESULT, CURLINFO_SCHEME, CURLINFO_SIZE_DOWNLOAD_T, CURLINFO_SIZE_UPLOAD_T, CURLINFO_SPEED_DOWNLOAD_T, CURLINFO_SPEED_UPLOAD_T, CURLINFO_APPCONNECT_TIME_T, CURLINFO_CONNECT_TIME_T, CURLINFO_FILETIME_T, CURLINFO_NAMELOOKUP_TIME_T, CURLINFO_PRETRANSFER_TIME_T, CURLINFO_REDIRECT_TIME_T, CURLINFO_STARTTRANSFER_TIME_T, CURLINFO_TOTAL_TIME_T.
 curl_setoptIntroduced CURLOPT_ABSTRACT_UNIX_SOCKET, CURLOPT_KEEP_SENDING_ON_ERROR, CURLOPT_PRE_PROXY, CURLOPT_PROXY_CAINFO, CURLOPT_PROXY_CAPATH, CURLOPT_PROXY_CRLFILE, CURLOPT_PROXY_KEYPASSWD, CURLOPT_PROXY_PINNEDPUBLICKEY, CURLOPT_PROXY_SSLCERT, CURLOPT_PROXY_SSLCERTTYPE, CURLOPT_PROXY_SSL_CIPHER_LIST, CURLOPT_PROXY_SSLKEY, CURLOPT_PROXY_SSLKEYTYPE, CURLOPT_PROXY_SSL_OPTIONS, CURLOPT_PROXY_SSL_VERIFYHOST, CURLOPT_PROXY_SSL_VERIFYPEER, CURLOPT_PROXY_SSLVERSION, CURLOPT_PROXY_TLSAUTH_PASSWORD, CURLOPT_PROXY_TLSAUTH_TYPE, CURLOPT_PROXY_TLSAUTH_USERNAME, CURLOPT_SOCKS5_AUTH, CURLOPT_SUPPRESS_CONNECT_HEADERS, CURLOPT_DISALLOW_USERNAME_IN_URL, CURLOPT_DNS_SHUFFLE_ADDRESSES, CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS, CURLOPT_HAPROXYPROTOCOL, CURLOPT_PROXY_TLS13_CIPHERS, CURLOPT_SSH_COMPRESSION, CURLOPT_TIMEVALUE_LARGE and CURLOPT_TLS13_CIPHERS.
 definecase_insensitive has been deprecated and will be removed in version 8.0.0.
 ftp_fgetThe mode parameter is now optional. Formerly it has been mandatory.
 ftp_fputThe mode parameter is now optional. Formerly it has been mandatory.
 ftp_getThe mode parameter is now optional. Formerly it has been mandatory.
 ftp_nb_fgetThe mode parameter is now optional. Formerly it has been mandatory.
 ftp_nb_fputThe mode parameter is now optional. Formerly it has been mandatory.
 ftp_nb_getThe mode parameter is now optional. Formerly it has been mandatory.
 ftp_nb_putThe mode parameter is now optional. Formerly it has been mandatory.
 ftp_putThe mode parameter is now optional. Formerly it has been mandatory.
 getallheadersThis function became available in the FPM SAPI.
 imagecreatefromstringWEBP is supported now (if supported by the libgd in use).
 is_countableis_countable has been added.
 json_decodeJSON_THROW_ON_ERROR flags was added.
 json_encodeJSON_THROW_ON_ERROR flags was added.
 ldap_addSupport for controls added
 ldap_compareSupport for controls added
 ldap_deleteSupport for controls added
 ldap_exopSupport for controls added
 ldap_exop_passwdSupport for controls added
 ldap_listSupport for controls added
 ldap_mod_addSupport for controls added
 ldap_mod_delSupport for controls added
 ldap_mod_replaceSupport for controls added
 ldap_modify_batchSupport for controls added
 ldap_mod_add_extSupport for controls added
 ldap_mod_del_extSupport for controls added
 ldap_mod_replace_extSupport for controls added
 ldap_parse_resultSupport for controls added
 ldap_readSupport for controls added
 ldap_renameSupport for controls added
 ldap_rename_extSupport for controls added
 ldap_searchSupport for controls added
 listSupport for reference assignments in array destructuring was added.
 mb_convert_caseAdded support for MB_CASE_FOLD, MB_CASE_UPPER_SIMPLE, MB_CASE_LOWER_SIMPLE, MB_CASE_TITLE_SIMPLE, and MB_CASE_FOLD_SIMPLE as mode.
 password_hashSupport for Argon2id passwords using PASSWORD_ARGON2ID was added.
 preg_quoteThe # character is now quoted
 session_get_cookie_paramsThe "samesite" entry was added in the returned array.
 session_set_cookie_paramsAn alternative signature supporting an lifetime_or_options array has been added. This signature supports also setting of the SameSite cookie attribute.
 setcookieAn alternative signature supporting an options array has been added. This signature supports also setting of the SameSite cookie attribute.
 setrawcookieAn alternative signature supporting an options array has been added. This signature supports also setting of the SameSite cookie attribute.
 striposPassing an int as needle has been deprecated.
 stristrPassing an int as needle has been deprecated.
 strposPassing an int as needle has been deprecated.
 strrchrPassing an int as needle has been deprecated.
 strriposPassing an int as needle has been deprecated.
 strrposPassing an int as needle has been deprecated.
 strstrPassing an int as needle has been deprecated.
 unlinkOn Windows, it is now possible to unlink files with handles in use, while formerly that would fail. However, it is still not possible to re-create the unlinked file, until all handles to it have been closed.
 var_exportNow exports stdClass objects as an array cast to an object ((object) array( ... )), rather than using the nonexistent method stdClass::__setState. The practical effect is that now stdClass is exportable, and the resulting code will even work on earlier versions of PHP.
 xml_parser_get_optionoptions now supports XML_OPTION_SKIP_TAGSTART and XML_OPTION_SKIP_WHITE.
 xml_set_external_entity_ref_handlerThe return value of the handler is no longer ignored if the extension has been built against libxml. Formerly, the return value has been ignored, and parsing did never stop.
7.2.19DatePeriod::__constructrecurrences must be greater than 0 now.
 SplFileObject::__toStringChanged from an alias of SplFileObject::current to an alias of SplFileObject::fgets.
7.2.18substr_compareoffset may now be equal to the length of haystack.
7.2.12DateInterval::formatThe F and f format will now always be positive.
 xml_parser_get_optionoptions now supports XML_OPTION_SKIP_TAGSTART and XML_OPTION_SKIP_WHITE.
7.2.0array_uniqueIf flags is SORT_STRING, formerly array has been copied and non-unique elements have been removed (without packing the array afterwards), but now a new array is built by adding the unique elements. This can result in different numeric indexes.
 assertUsage of a string as the assertion became deprecated. It now emits an E_DEPRECATED notice when both assert.active and zend.assertions are set to 1.
 bcmodnum1 and num2 are no longer truncated to integer, so now the behavior of bcmod follows fmod rather than the % operator.
 bcmodThe scale parameter was added.
 countcount will now yield a warning on invalid countable types passed to the value parameter.
 date_parseThe zone element of the returned array represents seconds instead of minutes now, and its sign is inverted. For instance -120 is now 7200.
 date_parse_from_formatThe zone element of the returned array represents seconds instead of minutes now, and its sign is inverted. For instance -120 is now 7200.
 date_sun_infoThe calculation was fixed with regards to local midnight instead of local noon, which changes the results slightly.
 exif_read_dataThe file parameter now supports both local files and stream resources.
 exif_read_dataSupport for the following EXIF formats were added: Samsung DJI Panasonic Sony Pentax Minolta Sigma/Foveon AGFA Kyocera Ricoh Epson
 exif_thumbnailThe file parameter now supports both local files and stream resources.
 get_classPrior to this version the default value for object was null and it had the same effect as not passing any value. Now null has been removed as the default value for object, and is no longer a valid input.
 gettypeClosed resources are now reported as 'resource (closed)'. Previously the returned value for closed resources were 'unknown type'.
 hash_copyAccept and return HashContext instead of resource.
 hash_finalAccept HashContext instead of resource.
 hash_hmacUsage of non-cryptographic hash functions (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) was disabled.
 hash_hmac_fileUsage of non-cryptographic hash functions (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) was disabled.
 hash_initUsage of non-cryptographic hash functions (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) with HASH_HMAC was disabled.
 hash_initReturn HashContext instead of resource.
 hash_pbkdf2Usage of non-cryptographic hash functions (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) was disabled.
 hash_updateAccept HashContext instead of resource.
 hash_update_fileAccept HashContext instead of resource.
 hash_update_streamAccept HashContext instead of resource.
 idn_to_asciiINTL_IDNA_VARIANT_2003 has been deprecated; use INTL_IDNA_VARIANT_UTS46 instead.
 idn_to_utf8INTL_IDNA_VARIANT_2003 has been deprecated; use INTL_IDNA_VARIANT_UTS46 instead.
 imageantialiasimageantialias is now generally available. Formerly it was only available if PHP was compiled with the bundled version of the GD library.
 imagegdimagegd now allows to output truecolor images. Formerly, these have been implicitly converted to palette.
 imagelayereffectAdded IMG_EFFECT_MULTIPLY (requires system libgd >= 2.1.1 or the bundled libgd).
 imagetypesIMG_BMP added.
 is_objectis_object now returns true for unserialized objects without a class definition (class of __PHP_Incomplete_Class). Previously false was returned.
 json_decodeassociative is nullable now.
 json_decodeJSON_INVALID_UTF8_IGNORE, and JSON_INVALID_UTF8_SUBSTITUTE flags were added.
 json_encodeJSON_INVALID_UTF8_IGNORE, and JSON_INVALID_UTF8_SUBSTITUTE flags were added.
 mailThe additional_headers parameter now also accepts an array.
 mb_check_encodingThis function now also accepts an array as value. Formerly, only strings have been supported.
 mb_convert_encodingThis function now also accepts an array as string. Formerly, only strings have been supported.
 mb_parse_strCalling mb_parse_str without the second parameter was deprecated.
 mb_send_mailThe additional_headers parameter now also accepts an array.
 mt_randmt_rand has received a bug fix for a modulo bias bug. This means that sequences generated with a specific seed may differ from PHP 7.1 on 64-bit machines.
 number_formatnumber_format was changed to not being able to return -0, previously -0 could be returned for cases like where num would be -0.01.
 openssl_pkcs7_verifyThe output_filename parameter was added.
 packfloat and double types supports both Big Endian and Little Endian.
 parse_strUsage of parse_str without a second parameter now emits an E_DEPRECATED notice.
 password_hashSupport for Argon2i passwords using PASSWORD_ARGON2I was added.
 preg_matchThe PREG_UNMATCHED_AS_NULL is now supported for the $flags parameter.
 preg_match_allThe PREG_UNMATCHED_AS_NULL is now supported for the $flags parameter.
 preg_quotedelimiter is nullable now.
 proc_niceThis function is now available on Windows.
 randrand has received a bug fix for a modulo bias bug. This means that sequences generated with a specific seed may differ from PHP 7.1 on 64-bit machines.
 read_exif_dataThis function alias was deprecated.
 session_abortThe return type of this function is bool now. Formerly, it has been void.
 session_module_nameIt is now explicitly forbidden to set the module name to "user". Formerly, this has been silently ignored.
 session_namesession_name checks session status, previously it only checked cookie status. Therefore, older session_name allows to call session_name after session_start which may crash PHP and may result in misbehaviors.
 session_resetThe return type of this function is bool now. Formerly, it has been void.
 session_set_cookie_paramsReturns true on success or false on failure. Formerly the function returned void.
 session_unsetThe return type of this function is bool now. Formerly, it has been void.
 session_write_closeThe return type of this function is bool now. Formerly, it has been void.
 set_error_handlererrcontext became deprecated. Usage of this parameter now emits an E_DEPRECATED notice.
 unpackfloat and double types supports both Big Endian and Little Endian.
 utf8_decodeThis function has been moved from the XML extension to the core of PHP. In previous versions, it was only available if the XML extension was installed.
 utf8_encodeThis function has been moved from the XML extension to the core of PHP. In previous versions, it was only available if the XML extension was installed.
 PDOStatement::debugDumpParamsPDOStatement::debugDumpParams now returns the SQL sent to the database, including the full, raw query (including the replaced placeholders with their bounded values). Note, that this will only be available if emulated prepared statements are turned on.
 ReflectionClass::getMethodsfilter is nullable now.
 ReflectionClass::getPropertiesfilter is nullable now.
 SQLite3::openBlobThe flags parameter has been added, allowing to write BLOBs; formerly only reading was supported.
7.1.24xml_parser_get_optionoptions now supports XML_OPTION_SKIP_TAGSTART and XML_OPTION_SKIP_WHITE.
7.1.5IntlDateFormatter::formatSupport for providing general DateTimeInterface objects to the datetime parameter was added. Formerly, only proper DateTime objects were supported.
7.1.4PDO::sqliteCreateFunctionThe flags parameter has been added.
 SQLite3::createFunctionThe flags parameter has been added.
7.1.2dns_get_recordAdded support for CAA record type.
 fopenThe 'e' option was added.
7.1.1get_defined_functionsThe exclude_disabled parameter has been added.
 packThe "e", "E", "g" and "G" codes were added to enable byte order support for float and double.
7.1.0DateInterval::formatThe F and f format characters were added.
 DateTime::setTimeThe microsecond parameter was added.
 DateTimeImmutable::__constructFrom now on microseconds are filled with actual value. Not with '00000'.
 DateTimeImmutable::setTimeThe microsecond parameter was added.
 DateTimeZone::listIdentifierscountryCode is nullable now.
 array_randThe internal randomization algorithm has been changed to use the Mersenne Twister Random Number Generator instead of the libc rand function.
 curl_multi_setoptIntroduced CURLMOPT_PUSHFUNCTION.
 exif_imagetypeAdded WebP support.
 file_get_contentsSupport for negative offsets has been added.
 get_headersThe context parameter was added.
 getenvThe name can now be omitted to retrieve an associative array of all environment variables.
 getimagesizeAdded WebP support.
 getoptAdded the rest_index parameter.
 grapheme_extractSupport for negative offsets has been added.
 grapheme_striposSupport for negative offsets has been added.
 grapheme_strposSupport for negative offsets has been added.
 hash_algosSupport for sha512/224, sha512/256, sha3-224, sha3-256, sha3-384 and sha3-512 has been added.
 iconv_strposSupport for negative offsets has been added.
 json_decodeAn empty JSON key ("") can be encoded to the empty object property instead of using a key with value _empty_.
 json_encodeJSON_UNESCAPED_LINE_TERMINATORS flags was added.
 json_encodeserialize_precision is used instead of precision when encoding float values.
 listIt is now possible to specify keys in list. This enables destructuring of arrays with non-integer or non-sequential keys.
 long2ipThe parameter type of ip has been changed from string to int.
 mb_eregmb_ereg will now set matches to an empty array, if nothing matched. Formerly, matches was not modified in that case.
 mb_ereg_replaceThe function checks whether string is valid for the current encoding.
 mb_ereg_replaceThe e modifier has been deprecated.
 mb_ereg_replace_callbackThe function checks whether string is valid for the current encoding.
 mb_ereg_search_setposSupport for negative offsets has been added.
 mb_eregimb_eregi will now set matches to an empty array, if nothing matched. Formerly, matches was not modified in that case.
 mb_eregi_replaceThe function checks whether string is valid for the current encoding.
 mb_eregi_replaceThe e modifier has been deprecated.
 mb_regex_set_optionsThe "e" option now emits an E_DEPRECATED.
 mb_strimwidthSupport for negative starts and widths has been added.
 mb_striposSupport for negative offsets has been added.
 mb_strposSupport for negative offsets has been added.
 mt_randrand has been made an alias of mt_rand.
 mt_randmt_rand has been updated to use the fixed, correct, version of the Mersenne Twister algorithm. To fall back to the old behaviour, use mt_srand with MT_RAND_PHP as the second parameter.
 mt_srandsrand has been made an alias of mt_srand.
 mt_srandmt_rand has been updated to use the fixed, correct, version of the Mersenne Twister algorithm. To fall back to the old behaviour, use mt_srand with MT_RAND_PHP as the second parameter.
 openssl_csr_newoptions now also supports curve_name.
 openssl_decryptThe tag and aad parameters were added.
 openssl_encryptThe tag, aad and tag_length parameters were added.
 openssl_pkey_newThe curve_name key of the options parameter was added to make it possible to create EC keys based on Elliptic Curve algorithms.
 output_add_rewrite_varAs of PHP 7.1.0, a dedicated output buffer is used, url_rewriter.tags is used solely for output functions and url_rewriter.hosts is available. Prior to PHP 7.1.0, rewrite variables set by output_add_rewrite_var shared an output buffer with transparent session id support (see session.trans_sid_tags).
 output_reset_rewrite_varsBefore PHP 7.1.0, rewrite vars set by output_add_rewrite_var use the same Session module trans sid output buffer. Since PHP 7.1.0, dedicated output buffer is used and output_reset_rewrite_vars only removes rewrite vars defined by output_add_rewrite_var.
 pcntl_signalAs of PHP 7.1.0 the handler callback is given a second argument containing the siginfo of the specific signal. This data is only supplied if the operating system has the siginfo_t structure. If the OS does not implement siginfo_t NULL is supplied.
 pcntl_signal_get_handlerpcntl_signal_get_handler has been added.
 pg_fetch_allThe mode parameter was added.
 pg_last_noticeThe mode parameter was added.
 pg_selectThe mode parameter was added.
 randrand has been made an alias of mt_rand.
 session_startsession_start now returns false and no longer initializes $_SESSION when it failed to start the session.
 shuffleThe internal randomization algorithm has been changed to use the Mersenne Twister Random Number Generator instead of the libc rand function.
 srandsrand has been made an alias of mt_srand.
 str_shuffleThe internal randomization algorithm has been changed to use the Mersenne Twister Random Number Generator instead of the libc rand function.
 striposSupport for negative offsets has been added.
 strposSupport for negative offsets has been added.
 substr_countSupport for negative offsets and lengths has been added. length may also be 0 now.
 tempnamtempnam now emits a notice when falling back to the temp directory of the system.
 unpackThe optional offset has been added.
 unserializeThe allowed_classes element of options) is now strictly typed, i.e. if anything other than an array or a bool is given, unserialize returns false and issues an E_WARNING.
 ReflectionType::__toStringReflectionType::__toString has been deprecated.
 SessionHandler::gcPrior to this version, the function returned true on success.
 SessionHandlerInterface::gcPrior to this version, the function returned true on success.
7.0.16dns_get_recordAdded support for CAA record type.
 fopenThe 'e' option was added.
7.0.15get_defined_functionsThe exclude_disabled parameter has been added.
 packThe "e", "E", "g" and "G" codes were added to enable byte order support for float and double.
7.0.11iconv_substrIf string is equal to offset characters long, an empty string will be returned. Prior to this version, false was returned in this case.
7.0.10imagetypesIMG_WEBP added.
 SplFileObject::getCsvControlAdded the escape character to the returned array.
 SQLite3::__constructThe filename can now be empty to use a private, temporary on-disk database.
7.0.9getenvThe local_only parameter has been added.
7.0.7curl_multi_setoptIntroduced CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE, CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE, CURLMOPT_MAX_HOST_CONNECTIONS, CURLMOPT_MAX_PIPELINE_LENGTH and CURLMOPT_MAX_TOTAL_CONNECTIONS.
 curl_setoptIntroduced CURL_HTTP_VERSION_2, CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE, CURL_HTTP_VERSION_2TLS, CURL_REDIR_POST_301, CURL_REDIR_POST_302, CURL_REDIR_POST_303, CURL_REDIR_POST_ALL, CURL_VERSION_KERBEROS5, CURL_VERSION_PSL, CURL_VERSION_UNIX_SOCKETS, CURLAUTH_NEGOTIATE, CURLAUTH_NTLM_WB, CURLFTP_CREATE_DIR, CURLFTP_CREATE_DIR_NONE, CURLFTP_CREATE_DIR_RETRY, CURLHEADER_SEPARATE, CURLHEADER_UNIFIED, CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE, CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE, CURLMOPT_MAX_HOST_CONNECTIONS, CURLMOPT_MAX_PIPELINE_LENGTH, CURLMOPT_MAX_TOTAL_CONNECTIONS, CURLOPT_CONNECT_TO, CURLOPT_DEFAULT_PROTOCOL, CURLOPT_DNS_INTERFACE, CURLOPT_DNS_LOCAL_IP4, CURLOPT_DNS_LOCAL_IP6, CURLOPT_EXPECT_100_TIMEOUT_MS, CURLOPT_HEADEROPT, CURLOPT_LOGIN_OPTIONS, CURLOPT_PATH_AS_IS, CURLOPT_PINNEDPUBLICKEY, CURLOPT_PIPEWAIT, CURLOPT_PROXY_SERVICE_NAME, CURLOPT_PROXYHEADER, CURLOPT_SASL_IR, CURLOPT_SERVICE_NAME, CURLOPT_SSL_ENABLE_ALPN, CURLOPT_SSL_ENABLE_NPN, CURLOPT_SSL_FALSESTART, CURLOPT_SSL_VERIFYSTATUS, CURLOPT_STREAM_WEIGHT, CURLOPT_TCP_FASTOPEN, CURLOPT_TFTP_NO_OPTIONS, CURLOPT_UNIX_SOCKET_PATH, CURLOPT_XOAUTH2_BEARER, CURLPROTO_SMB, CURLPROTO_SMBS, CURLPROXY_HTTP_1_0, CURLSSH_AUTH_AGENT and CURLSSLOPT_NO_REVOKE.
7.0.0definearray values are allowed.
 dirnameAdded the optional levels parameter.
 getrusageThis function is now supported on Windows.
add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top