The following changes have been made to functions of bundled extensions.
Version | Function | Description |
---|---|---|
7.0.0 | array_column | Added the ability for the input parameter to be an array of objects. |
assert | assert is now a language construct and not a function. assertion can now be an expression. The second parameter is now interpreted either as an exception (if a Throwable object is given), or as the description supported from PHP 5.4.8 onwards. | |
define | array values are allowed. | |
dirname | Added the optional levels parameter. | |
dl | dl is disabled in PHP-FPM. | |
getrusage | This function is now supported on Windows. | |
gmmktime | is_dst parameter has been removed. | |
imagepsbbox | T1Lib support was removed from PHP, thrus removing this function. | |
imagepsencodefont | T1Lib support was removed from PHP, thrus removing this function. | |
imagepsextendfont | T1Lib support was removed from PHP, thrus removing this function. | |
imagepsfreefont | T1Lib support was removed from PHP, thrus removing this function. | |
imagepsloadfont | T1Lib support was removed from PHP, thrus removing this function. | |
imagepsslantfont | T1Lib support was removed from PHP, thrus removing this function. | |
imagepstext | T1Lib support was removed from PHP, thrus removing this function. | |
is_numeric | Strings in hexadecimal (e.g. 0xf4c3b00c) notation are no longer regarded as numeric strings, i.e. is_numeric returns FALSE now. | |
list | Strings can no longer be unpacked. | |
list | The order that the assignment operations are performed in has changed. | |
list | list expressions can no longer be completely empty. | |
mktime | is_dst parameter has been removed. | |
ob_start | In case ob_start is used inside an output buffer callback, this function will no longer issue an E_ERROR but instead an E_RECOVERABLE_ERROR, allowing custom error handlers to catch such errors. | |
parse_ini_file | Hash marks (#) are no longer recognized as comments. | |
preg_replace | Support for the /e modifier has been removed. Use preg_replace_callback instead. | |
session_start | The options parameter was added. | |
set_exception_handler | The type of parameter passed into exception_handler changed from Exception to Throwable | |
setlocale | Support for the category parameter passed as a string has been removed. Only LC_* constants can be used as of this version. | |
substr | If string is equal to start characters long, an empty string will be returned. Prior to this version, FALSE was returned in this case. | |
token_get_all | Added the optional flags parameter along with the TOKEN_PARSE flag. | |
unserialize | The options parameter has been added. | |
IntlDateFormatter::setTimeZoneId | This function has been removed. | |
5.6.12 | gd_info | WebP Support added. |
5.6.6 | json_encode | JSON_PRESERVE_ZERO_FRACTION option was added. |
5.6.5 | crypt | When the failure string "*0" is given as the salt, "*1" will now be returned for consistency with other crypt implementations. Prior to this version, PHP 5.6 would incorrectly return a DES hash. |
5.6.3 | pack | The "q", "Q", "J" and "P" codes were added to enable working with 64-bit numbers. |
5.6.1 | parse_ini_file | Added new INI_SCANNER_TYPED mode. |
sem_acquire | The $nowait parameter was added. | |
5.6.0 | array_fill | num may now be zero. Previously, num was required to be greater than zero. |
array_filter | Added optional flag parameter and constants ARRAY_FILTER_USE_KEY and ARRAY_FILTER_USE_BOTH | |
crypt | Raise E_NOTICE security warning if salt is omitted. | |
curl_setopt | CURLOPT_SAFE_UPLOAD is now TRUE by default. | |
curl_setopt | Removed CURLOPT_CLOSEPOLICY and associated values. | |
hash_algos | Support for gost-crypto was added. This implements the GOST hash function using the CryptoPro S-box tables as specified by RFC 4357, section 11.2. | |
html_entity_decode | The default value for the encoding parameter was changed to be the value of the default_charset configuration option. | |
htmlentities | The default value for the encoding parameter was changed to be the value of the default_charset configuration option. | |
htmlspecialchars | The default value for the encoding parameter was changed to be the value of the default_charset configuration option. | |
json_decode | Invalid non-lowercased variants of the true, false and null literals are no longer accepted as valid input, and will generate warnings. | |
mb_regex_encoding | Default encoding is changed to UTF-8. It was EUC-JP Previously. | |
mcrypt_create_iv | MCRYPT_DEV_URANDOM is now the default value of source. | |
mcrypt_decrypt | Invalid key and iv sizes are no longer accepted. mcrypt_decrypt will now throw a warning and return FALSE if the inputs are invalid. Previously keys and IVs were padded with '\0' bytes to the next valid size. | |
mcrypt_encrypt | Invalid key and iv sizes are no longer accepted. mcrypt_encrypt will now throw a warning and return FALSE if the inputs are invalid. Previously keys and IVs were padded with '\0' bytes to the next valid size. | |
pg_connect | Support for giving the PGSQL_CONNECT_ASYNC constant as the connect_type was added. | |
pg_convert | No longer experimental. Boolean/NULL data types are supported. Unknown/unsupported data types are escaped without validation. pg_convert could be used with any data types. | |
pg_delete | No longer experimental. Added PGSQL_DML_ESCAPE constant, TRUE/FALSE and NULL data type support. | |
pg_insert | No longer experimental. Added PGSQL_DML_ESCAPE constant, TRUE/FALSE and NULL data type support. | |
pg_lo_seek | Added PostgreSQL 9.3's 64bit large object support. Both client and server must support PostgreSQL 9.3 and PHP must be 64bit build to use 64bit large object. | |
pg_lo_tell | Added PostgreSQL 9.3's 64bit large object support. Both client and server must support PostgreSQL 9.3 and PHP must be 64bit build to use 64bit large object. | |
pg_lo_truncate | Added truncate function. It supports PostgreSQL 9.3's 64bit large object. Both client and server must support PostgreSQL 9.3 and PHP must be 64bit build to use 64bit large object. | |
pg_meta_data | No longer experimental. Added "is enum" as default attribute. extended flag is added. | |
pg_select | No longer experimental. Added PGSQL_DML_ESCAPE constant, TRUE/FALSE and NULL data type support. | |
pg_update | No longer experimental. Added PGSQL_DML_ESCAPE constant, TRUE/FALSE and NULL data type support. | |
stream_socket_enable_crypto | The crypto_type is now optional. | |
substr_compare | length may now be 0. | |
unserialize | Manipulating the serialised data by replacing C: with O: to force object instantiation without calling the constructor will now fail. | |
ReflectionClass::newInstanceWithoutConstructor | All internal classes can now be instantiated except for those declared final. | |
XMLReader::getAttributeNo | XMLReader::getAttributeNo now returns NULL if the attribute doesn't exist. | |
XMLReader::getAttributeNs | XMLReader::getAttributeNS now returns NULL if the attribute doesn't exist. | |
5.5.22, 5.6.6 | flock | Added support for the wouldblock parameter on Windows. |
5.5.21, 5.6.5 | SplFileObject::fputcsv | Added the escape parameter. |
5.5.21 | crypt | When the failure string "*0" is given as the salt, "*1" will now be returned for consistency with other crypt implementations. Prior to this version, PHP 5.5 (and earlier branches) would incorrectly return a DES hash. |
5.5.19/5.6.3 | imagescale | The calculation of the height if new_height was negative or omitted was fixed; prior to these versions, the aspect ratio was not maintained correctly. |
5.5.8 | DatePeriod::__construct | end type changed to DateTimeImmutable. Previously, DateTime. |
5.5.7 | apache_request_headers | This function became available in the CLI server. |
apache_response_headers | This function became available in the CLI server. | |
getallheaders | This function became available in the CLI server. | |
5.5.4 | fputcsv | The escape_char parameter was added |
5.5.3/5.4.19 | pg_delete | Direct SQL injection to table_name and Indirect SQL injection to identifiers are fixed. |
pg_insert | Direct SQL injection to table_name and Indirect SQL injection to identifiers are fixed. | |
pg_select | Direct SQL injection to table_name and Indirect SQL injection to identifiers are fixed. | |
pg_update | Direct SQL injection to table_name and Indirect SQL injection to identifiers are fixed. | |
5.5.2 | DOMDocument::schemaValidate | Added the flags parameter |
DOMDocument::schemaValidateSource | Added the flags parameter | |
5.5.1 | hex2bin | A warning is thrown if the input string is invalid hexadecimal string. |
pg_unescape_bytea | A warning is thrown if the input string is invalid. | |
session_set_save_handler | Added the optional create_sid parameter. | |
5.5.0/PECL 3.0.0 | IntlDateFormatter::create | An IntlCalendar object is allowed for calendar. Objects of type IntlTimeZone and DateTimeZone are allowed for timezone. Invalid timezone identifiers (including empty strings) are no longer allowed for timezone. If NULL is given for timezone, the timezone identifier given by date_default_timezone_get will be used instead of ICUʼs default. |
IntlDateFormatter::format | Support for providing IntlCalendar objects to the value parameter was added. | |
IntlDateFormatter::setCalendar | It became possible to pass an IntlCalendar object. | |
5.5.0 | DatePeriod::__construct | start type changed to DateTimeImmutable. Previously, DateTime. |
curl_getinfo | Introduced CURLINFO_RESPONSE_CODE, CURLINFO_HTTP_CONNECTCODE, CURLINFO_HTTPAUTH_AVAIL, CURLINFO_PROXYAUTH_AVAIL, CURLINFO_OS_ERRNO, CURLINFO_NUM_CONNECTS, CURLINFO_SSL_ENGINES, CURLINFO_COOKIELIST, CURLINFO_FTP_ENTRY_PATH, CURLINFO_APPCONNECT_TIME, CURLINFO_CONDITION_UNMET, CURLINFO_RTSP_CLIENT_CSEQ, CURLINFO_RTSP_CSEQ_RECV, CURLINFO_RTSP_SERVER_CSEQ and CURLINFO_RTSP_SESSION_ID. | |
curl_setopt | Introduced CURLOPT_SHARE. | |
curl_setopt | Added the cURL resource as the first argument to the CURLOPT_PROGRESSFUNCTION callback. | |
empty | empty now supports expressions, rather than only variables. | |
imagerotate | This function is now affected by the interpolation method set by the imagesetinterpolation function. | |
ip2long | Prior to this version, on Windows ip2long would sometimes return a valid number even if passed a value which was not an (IPv4) Internet Protocol dotted address. | |
iterator_to_array | iterator_to_array gained support for key types other than integer and string when the use_keys parameter is enabled. | |
json_encode | depth parameter was added. | |
mysql_connect | This function will generate an E_DEPRECATED error. | |
mysql_db_name | The mysql_list_dbs function is deprecated, and emits an E_DEPRECATED level error. | |
mysql_pconnect | This function will generate an E_DEPRECATED error. | |
mysql_tablename | The mysql_tablename function is deprecated, and emits an E_DEPRECATED level error. | |
pack | The "Z" code was added with equivalent functionality to "a" for Perl compatibility. | |
php_logo_guid | php_logo_guid has been removed from PHP. | |
phpinfo | Logo GUIDs were replaced with data URIs, and so turning off expose_php now has no effect on the result of phpinfo(). Credits are also now embedded within the output itself instead of linked. | |
preg_replace | The /e modifier is deprecated. Use preg_replace_callback instead. See the PREG_REPLACE_EVAL documentation for additional information about security risks. | |
set_error_handler | error_handler now accepts NULL. | |
set_exception_handler | Previously, if NULL was passed then this function returned TRUE. It returns the previous handler since PHP 5.5.0. | |
setcookie | A Max-Age attribute is now included in the Set-Cookie header sent to the client. | |
setrawcookie | A Max-Age attribute is now included in the Set-Cookie header sent to the client. | |
unpack | Changes were made to bring this function into line with Perl: The "a" code now retains trailing NULL bytes. The "A" code now strips all trailing ASCII whitespace (spaces, tabs, newlines, carriage returns, and NULL bytes). The "Z" code was added for NULL-padded strings, and removes trailing NULL bytes. | |
zend_logo_guid | zend_logo_guid has been removed from PHP. | |
IntlDateFormatter::setTimeZoneId | This function has been deprecated. | |
mysqli::commit | Added flags and name parameters. | |
mysqli::options | The MYSQLI_SERVER_PUBLIC_KEY and MYSQLI_SERVER_PUBLIC_KEY options were added. | |
mysqli::rollback | Added flags and name parameters. | |
SoapClient::SoapClient | New ssl_method option. | |
5.4.32, 5.5.16 | ucwords | Added the delimiters parameter. |
5.4.8 | assert | The description parameter was added. The description is also now provided to a callback function in ASSERT_CALLBACK mode as the fourth argument. |
mb_strcut | Passing NULL as length extracts all bytes to the end of the string. Prior to this version NULL was treated the same as 0. | |
mb_substr | Passing NULL as length extracts all characters to the end of the string. Prior to this version NULL was treated the same as 0. | |
5.4.7 | curl_getinfo | Introduced CURLINFO_PRIMARY_IP, CURLINFO_PRIMARY_PORT, CURLINFO_LOCAL_IP and CURLINFO_LOCAL_PORT. |
parse_url | Fixed host recognition when scheme is omitted and a leading component separator is present. | |
5.4.4 | hex2bin | A warning is thrown if the input string is of odd length. In PHP 5.4.0 the string was silently accepted, but the last byte was truncated. |
5.4.0/PECL 2.0.0b1 | idn_to_ascii | Added the parameters variant and idna_info; UTS #46 support. |
idn_to_utf8 | Added the parameters variant and idna_info; UTS #46 support. | |
5.4.0 | DOMDocument::loadHTML | Added options parameter. |
DOMDocument::loadHTMLFile | Added options parameter. | |
apache_child_terminate | This function became available under FastCGI. Previously, it was supported only when PHP was installed as an Apache module. | |
apache_request_headers | This function became available under FastCGI. Previously, it was supported when PHP was installed as an Apache module or by the NSAPI server module in Netscape/iPlanet/SunONE webservers. | |
apache_response_headers | This function became available under FastCGI. Previously, it was supported when PHP was installed as an Apache module or by the NSAPI server module in Netscape/iPlanet/SunONE webservers. | |
array_combine | Previous versions issued E_WARNING and returned FALSE for empty arrays. | |
array_multisort | The SORT_NATURAL and SORT_FLAG_CASE were added to array1_sort_flags as possible sort flags. | |
date_default_timezone_get | The timezone is no longer guessed from information available through the operating system as the guessed timezone can not be relied on. | |
date_default_timezone_get | The TZ environment variable is no longer used to guess the timezone. | |
debug_backtrace | Added the optional parameter limit. | |
debug_print_backtrace | Added the optional parameter limit. | |
define_syslog_variables | This function was removed from PHP. | |
dns_get_record | Added raw parameter. | |
empty | Checking non-numeric offsets of strings returns TRUE. | |
error_reporting | E_STRICT became part of E_ALL. | |
filter_input_array | Added add_empty parameter. | |
filter_var_array | Added add_empty parameter. | |
get_html_translation_table | The constants ENT_HTML401, ENT_XML1, ENT_XHTML and ENT_HTML5 were added. | |
get_html_translation_table | The default value for the encoding parameter was changed to UTF-8. | |
get_magic_quotes_gpc | Always returns FALSE because the magic quotes feature was removed from PHP. | |
get_magic_quotes_runtime | Always returns FALSE because the magic quotes feature was removed from PHP. | |
getallheaders | This function became available under FastCGI. Previously, it was supported when PHP was installed as an Apache module or by the NSAPI server module in Netscape/iPlanet/SunONE webservers. | |
gzcompress | Added encoding parameter. | |
gzdeflate | Added encoding parameter. | |
gzencode | FORCE_DEFLATE now generates RFC 1950 compliant output. | |
hash | The tiger algorithm now uses big-endian byte ordering. See also example below. | |
hash_algos | Support for joaat, fnv132 and fnv164 was added. Support for Salsa10 and Salsa20 was removed. | |
html_entity_decode | Default encoding changed from ISO-8859-1 to UTF-8. | |
html_entity_decode | The constants ENT_HTML401, ENT_XML1, ENT_XHTML and ENT_HTML5 were added. | |
htmlentities | The default value for the encoding parameter was changed to UTF-8. | |
htmlentities | The constants ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_XML1, ENT_XHTML and ENT_HTML5 were added. | |
htmlspecialchars | The default value for the encoding parameter was changed to UTF-8. | |
htmlspecialchars | The constants ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_XML1, ENT_XHTML and ENT_HTML5 were added. | |
htmlspecialchars_decode | The constants ENT_HTML401, ENT_XML1, ENT_XHTML and ENT_HTML5 were added. | |
http_build_query | The enc_type parameter was added. | |
iconv | Since this version, the function returns FALSE on illegal characters, unless //IGNORE is specified in output charset. Before, it returned partial output string. | |
imagecolorset | The alpha parameter was added. | |
imagejpeg | Disallowed passing an empty string to filename to skip this argument. | |
isset | Checking non-numeric offsets of strings now returns FALSE. | |
json_decode | The options parameter was added. | |
json_encode | JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, and JSON_UNESCAPED_UNICODE options were added. | |
mb_encode_numericentity | Added is_hex parameter. | |
mysqli_get_cache_stats | The mysqli_get_cache_stats was removed. | |
number_format | This function now supports multiple bytes in dec_point and thousands_sep. Only the first byte of each separator was used in older versions. | |
ob_start | The third parameter of ob_start changed from a boolean parameter called erase (which, if set to FALSE, would prevent the output buffer from being deleted until the script finished executing) to an integer parameter called flags. Unfortunately, this results in an API compatibility break for code written prior to PHP 5.4.0 that uses the third parameter. See the flags example for an example of how to handle this with code that needs to be compatible with both. | |
ob_start | A chunk size of 1 now results in chunks of 1 byte being sent to the output buffer. | |
openssl_decrypt | The raw_output was changed to options. | |
openssl_encrypt | The raw_output was changed to options. | |
preg_match_all | The matches parameter became optional. | |
scandir | sorting_order constants were added. Any nonzero value caused descending order in previous versions. So for all PHP versions, use 0 for ascending order, and 1 for descending order. An option for SCANDIR_SORT_NONE behavior did not exist prior to PHP 5.4.0. | |
session_set_save_handler | Added SessionHandlerInterface for implementing session handlers and SessionHandler to expose internal PHP session handlers. | |
snmp_set_valueretrieval | Constants SNMP_VALUE_PLAIN or SNMP_VALUE_LIBRARY may be combined with SNMP_VALUE_OBJECT resulting different way of representing contents of value array element in return value of GET-function. If no SNMP_VALUE_{PLAIN,LIBRARY} constant is accompanying SNMP_VALUE_OBJECT, SNMP_VALUE_LIBRARY is used. Prior to 5.4.0 SNMP_VALUE_OBJECT effecively meant SNMP_VALUE_OBJECT|SNMP_VALUE_PLAIN. | |
sort | Added support for SORT_NATURAL and SORT_FLAG_CASE as sort_flags | |
Phar::setStub | Added len parameter. | |
PharData::setStub | Added len parameter. | |
SimpleXMLElement::getDocNamespaces | Added from_root parameter. | |
SoapClient::SoapClient | New keep_alive option. | |
5.4 | grapheme_substr | If length is given and positive and the argument string is shorter than the specified length, all the rest of the string according to start parameter is returned. Previously, FALSE was returned. |
5.3.9 | DateTime::createFromFormat | The + format specifier has been added. |
dl | dl is enabled in PHP-FPM, albeit discouraged. | |
is_a | Added allow_string parameter | |
is_subclass_of | Added allow_string parameter | |
5.3.7 | crypt | Added $2x$ and $2y$ Blowfish modes to deal with potential high-bit attacks. |
curl_getinfo | Introduced CURLINFO_REDIRECT_URL. | |
is_subclass_of | Added support for class_name to work with interfaces | |
5.3.6 | DateTime::modify | Absolute date/time statements now take effect. Previously, only relative parts were used. |
DOMDocument::saveHTML | The node parameter was added. | |
array_product | The product of an empty array is now 1, when before this function would return 0 for an empty array. | |
debug_backtrace | The parameter provide_object changed to options and additional option DEBUG_BACKTRACE_IGNORE_ARGS is added. | |
debug_print_backtrace | Added the optional parameter options. | |
preg_match | Returns FALSE if offset is higher than subject length. | |
preg_match_all | Returns FALSE if offset is higher than subject length. | |
PDO_MYSQL DSN | Prior to version 5.3.6, charset was ignored. | |
5.3.4 | copy | Changed the context parameter to actually have an effect. Previously, any context was ignored. |
get_html_translation_table | The encoding parameter was added. | |
mt_rand | Issues an E_WARNING and returns FALSE if max < min. | |
rawurlencode | Tilde characters are no longer encoded when rawurlencode is used with EBCDIC strings. | |
sleep | Before PHP 5.3.4, on Windows, sleep always returns NULL when sleep has occurred, regardless of whether the sleep was interrupted or not. | |
strip_tags | strip_tags ignores self-closing XHTML tags in allowable_tags. | |
IntlDateFormatter::format | Support for providing DateTime objects to the value parameter was added. | |
mysqli_driver::$report_mode | Changing the reporting mode is now be per-request, rather than per-process. | |
5.3.3 | DOMXPath::evaluate | The registerNodeNS parameter was added. |
DOMXPath::query | The registerNodeNS parameter was added. | |
json_encode | JSON_NUMERIC_CHECK option was added. | |
ldap_sasl_bind | Support on Windows was added. | |
openssl_decrypt | The iv parameter was added. | |
openssl_encrypt | The iv parameter was added. | |
parse_url | Removed the E_WARNING that was emitted when URL parsing failed. | |
5.3.2 (PECL OCI8 1.4) | oci_set_prefetch | Before this release, rows must be >= 1. |
5.3.2 | crypt | Added SHA-256 and SHA-512 crypt based on Ulrich Drepper's implementation. |
crypt | Fixed Blowfish behaviour on invalid rounds to return "failure" string ("*0" or "*1"), instead of falling back to DES. | |
flock | The automatic unlocking when the file's resource handle is closed was removed. Unlocking now always has to be done manually. | |
gmp_init | The base was extended from 2 to 36, to 2 to 62 and -2 to -36. | |
gmp_strval | The base was extended from 2 to 36, to 2 to 62 and -2 to -36. | |
imap_append | Added INTERNALDATE support to imap_append. | |
imap_open | params added | |
5.3.1 | get_defined_constants | Windows only: Core constants are categorized under Core, previously mhash. |
ibase_query | On success the function now returns TRUE if there were no affected rows, where it previously returned 0 (a zero followed by an empty space). | |
rename | rename can now rename files across drives in Windows. | |
5.3.0 (PECL OCI8 1.3.4) | oci_set_prefetch | Before this release, prefetching was limited to the lesser of rows rows and 1024 * rows bytes. The byte size restriction has now been removed. |
5.3.0 | DateTime::__construct | If time contains an invalid date/time format, then an exception is now thrown. Previously an error was emitted. |
DateTime::modify | Changed the return value on success from NULL to DateTime. | |
DateTime::setDate | Changed the return value on success from NULL to DateTime. | |
DateTime::setISODate | Changed the return value on success from NULL to DateTime. | |
DateTime::setTime | Changed the return value on success from NULL to DateTime. | |
DateTime::setTimezone | Changed the return value on success from NULL to DateTime. | |
DateTimeZone::getTransitions | The optional timestamp_begin and timestamp_end were added. | |
DateTimeZone::listIdentifiers | Added the optional what and country parameters. | |
DirectoryIterator::__construct | Throws UnexpectedValueException if the path cannot be opened. | |
acosh | This function is now available on all platforms | |
array_multisort | The SORT_LOCALE_STRING was added to array1_sort_flags as possible sort flags. | |
array_reduce | Changed initial to allow mixed, previously integer. | |
array_search | As with all internal PHP functions as of 5.3.0, array_search returns NULL if invalid parameters are passed to it. | |
asinh | This function is now available on all platforms | |
atanh | This function is now available on all platforms | |
call_user_func | The interpretation of object oriented keywords like parent and self has changed. Previously, calling them using the double colon syntax would emit an E_STRICT warning because they were interpreted as static. | |
call_user_func_array | The interpretation of object oriented keywords like parent and self has changed. Previously, calling them using the double colon syntax would emit an E_STRICT warning because they were interpreted as static. | |
checkdnsrr | This function is now available on Windows platforms. | |
clearstatcache | Added optional clear_realpath_cache and filename parameters. | |
copy | Added context support. | |
crypt | PHP now contains its own implementation for the MD5 crypt, Standard DES, Extended DES and the Blowfish algorithms and will use that if the system lacks of support for one or more of the algorithms. | |
curl_getinfo | Introduced CURLINFO_CERTINFO. | |
curl_setopt | Introduced CURLOPT_PROGRESSFUNCTION. | |
date_default_timezone_set | Now throws E_WARNING rather than E_STRICT. | |
define_syslog_variables | This function now throws an E_DEPRECATED notice. | |
dl | dl is now disabled in some SAPIs due to stability issues. The only SAPIs that allow dl are CLI and Embed. Use the Extension Loading Directives instead. | |
dns_get_record | This function is now available on Windows platforms. | |
dns_get_record | Prior to this release, if the authns parameter was given, the addtl parameter was also required. | |
error_reporting | E_DEPRECATED and E_USER_DEPRECATED introduced. | |
exif_imagetype | Added icon support. | |
expm1 | This function is now available on all platforms | |
fgetcsv | The escape parameter was added | |
fnmatch | This function is now available on Windows platforms. | |
func_get_arg | If this function is called from the outermost scope of a file which has been included by calling include or require from within a function in the calling file, it now generates a warning and returns FALSE. | |
func_get_arg | This function can now be used in parameter lists. | |
func_get_args | This function can now be used in parameter lists. | |
func_get_args | If this function is called from the outermost scope of a file which has been included by calling include or require from within a function in the calling file, it now generates a warning and returns FALSE. | |
func_num_args | If this function is called from the outermost scope of a file which has been included by calling include or require from within a function in the calling file, it now generates a warning and returns -1. | |
func_num_args | This function can now be used in parameter lists. | |
gd_info | JPG Support attribute renamed to JPEG Support. | |
get_cfg_var | get_cfg_var was fixed to be able to return "array" ini options. | |
get_class | NULL became the default value for object, so passing NULL to object now has the same result as not passing any value. | |
get_defined_constants | Core constants are categorized under Core, previously internal. On Windows, the Core Constants are categorized under mhash. | |
get_object_vars | This function now returns NULL if the object isn't an object. Previously FALSE was returned. | |
getimagesize | Added icon support. | |
getmxrr | This function is now available on Windows platforms. | |
getopt | Added support for "=" as argument/value separator. | |
getopt | Parameter longopts is available on all systems. | |
getopt | This function is no longer system dependent, and now works on Windows, too. | |
getopt | Added support for optional values (specified with "::"). | |
hash_algos | Support for md2, ripemd256, ripemd320, salsa10, salsa20, snefru256 and sha224 was added | |
htmlentities | The constant ENT_IGNORE was added. | |
htmlspecialchars | The constant ENT_IGNORE was added. | |
imagecolorclosesthwb | This function is now available on Windows | |
imagefilter | Pixelation support (IMG_FILTER_PIXELATE) was added. | |
inet_ntop | This function is now available on Windows platforms. | |
inet_pton | This function is now available on Windows platforms. | |
ini_get | Previously, the empty string was returned if the configuration option didn't exist. now, FALSE is returned instead. | |
ini_get_all | Added details. | |
is_a | This function is no longer deprecated, and will therefore no longer throw E_STRICT warnings. | |
json_decode | Added the optional depth. The default recursion depth was increased from 128 to 512 | |
json_encode | The options parameter was added. | |
link | This function is now available on Windows platforms (Vista, Server 2008 or greater). | |
linkinfo | This function is now available on Windows platforms (Vista, Server 2008 or greater). | |
log1p | This function is now available on all platforms | |
mb_get_info | The entry "http_output_conv_mimetypes" was made available. | |
mcrypt_create_iv | It is no longer required to call srand first. This is now done automatically. | |
mcrypt_create_iv | MCRYPT_DEV_RANDOM and MCRYPT_DEV_URANDOM became available on Windows platforms. | |
mktime | mktime now throws E_DEPRECATED notice if the is_dst parameter is used. | |
mysql_db_query | This function now throws an E_DEPRECATED notice. | |
mysql_escape_string | This function now throws an E_DEPRECATED notice. | |
mysqli_get_cache_stats | The mysqli_get_cache_stats was added as stub. | |
nl2br | Added the optional is_xhtml parameter. Before this version '<br />' was always inserted. | |
openssl_seal | The method parameter was added. | |
parse_ini_file | Added optional scanner_mode parameter. Single quotes may now be used around variable assignments. Hash marks (#) should no longer be used as comments and will throw a deprecation warning if used. | |
pg_lo_create | The optional object_id was added. | |
pg_lo_import | The optional object_id was added. | |
preg_quote | The - character is now quoted | |
property_exists | This function checks the existence of a property independent of accessibility. | |
rawurlencode | Now conforms to RFC 3986. | |
readlink | This function is now available on Windows platforms (Vista, Server 2008 or greater). | |
realpath | Prior to this release, if only the last path component did not exist, realpath would not fail on *BSD systems. realpath now fails in this case. | |
register_tick_function | Ticks are now supported on threaded web server modules. | |
round | The mode parameter was introduced. | |
session_start | If a session fails to start, then FALSE is returned. Previously TRUE was returned. | |
setlocale | This function now throws an E_DEPRECATED notice if a string is passed to the category parameter instead of one of the LC_* constants. | |
shm_attach | This function now returns a resource instead of an integer. | |
socket_create_pair | This function is now re-enabled on Windows platforms. | |
spl_autoload_register | The prepend parameter was added. | |
spl_autoload_register | Namespaces support was introduced. | |
stream_context_create | Added the optional params argument. | |
stream_socket_pair | This function is now available on Windows platforms. | |
stristr | Added the optional parameter before_needle. | |
strlen | Prior versions treated arrays as the string Array, thus returning a string length of 5 and emitting an E_NOTICE level error. | |
strstr | Added the optional parameter before_needle. | |
strtotime | Prior to PHP 5.3.0, 24:00 was not a valid format and strtotime returned FALSE. | |
strtotime | Prior to PHP 5.3.0, relative time formats supplied to the time argument of strtotime such as this week, previous week, last week, and next week were interpreted to mean a 7 day period relative to the current date/time, rather than a week period of Monday through Sunday. | |
sybase_connect | The new parameter was added. | |
symlink | This function is now available on Windows platforms (Vista, Server 2008 or greater). | |
time_nanosleep | This function is now available on Windows platforms. | |
time_sleep_until | This function is now available on Windows platforms. | |
touch | It became possible to change the modification time of a directory under Windows. | |
mysqli::__construct | Added the ability of persistent connections. | |
mysqli::options | The MYSQLI_OPT_INT_AND_FLOAT_NATIVE, MYSQLI_OPT_NET_CMD_BUFFER_SIZE, MYSQLI_OPT_NET_READ_BUFFER_SIZE, and MYSQLI_OPT_SSL_VERIFY_SERVER_CERT options were added. | |
mysqli::query | Added the ability of async queries. | |
ReflectionFunction::__construct | name can now be a closure. | |
SplObjectStorage::attach | Added the data parameter. | |
XMLReader::expand | The parameter basenode was added. | |
5.2.15 | mysqli_driver::$report_mode | Changing the reporting mode is now be per-request, rather than per-process. |
5.2.11 | get_defined_constants | The categorize parameter now operates appropriately. Previously, the categorize parameter was interpreted as !is_null($categorize), making any value other than NULL force the constants to be categorized. |
5.2.10 | array_rand | The resulting array of keys is no longer shuffled. |
array_unique | Changed the default value of sort_flags back to SORT_STRING. | |
curl_setopt | Introduced CURLOPT_PROTOCOLS, and CURLOPT_REDIR_PROTOCOLS. | |
ip2long | Prior to this version, ip2long would sometimes return a valid number even if passed a value which was not an (IPv4) Internet Protocol dotted address. | |
natsort | Zero padded numeric strings (e.g., '00005') now essentially ignore the 0 padding. | |
5.2.9 | array_unique | Added the optional sort_flags defaulting to SORT_REGULAR. Prior to 5.2.9, this function used to sort the array with SORT_STRING internally. |
5.2.8 | XSLTProcessor::importStylesheet | Accepts SimpleXMLElement again which was broken since PHP 5.2.6. |
5.2.7 | error_log | The possible value of 4 was added to message_type. |
parse_ini_file | On syntax error this function will return FALSE rather than an empty array. | |
round | The inner workings of round was changed to conform to the C99 standard. | |
strtotime | In PHP 5 prior to 5.2.7, requesting a given occurrence of a given weekday in a month where that weekday was the first day of the month would incorrectly add one week to the returned timestamp. This has been corrected in 5.2.7 and later versions. | |
5.2.6 | fopen | The 'c' and 'c+' options were added |
5.2.5 | addcslashes | The escape sequences \v and \f were added. |
debug_backtrace | Added the optional parameter provide_object. | |
imagefilter | Alpha support for IMG_FILTER_COLORIZE was added. | |
5.2.4 | array_slice | The default value of the length parameter was changed to NULL. A NULL length now tells the function to use the length of array. Prior to this version, a NULL length was taken to mean a zero length (nothing will be returned). |
checkdnsrr | TXT type was added. | |
curl_getinfo | Introduced CURLINFO_PRIVATE. | |
curl_setopt | Introduced CURLOPT_PRIVATE. | |
get_loaded_extensions | The optional zend_extensions parameter was added | |
ldap_first_attribute | The ber_identifier was removed. This is now handled automatically by PHP. | |
ldap_next_attribute | The ber_identifier was removed. This is now handled automatically by PHP. | |
parse_ini_file | Keys and section names consisting of numbers are now evaluated as PHP integers thus numbers starting by 0 are evaluated as octals and numbers starting by 0x are evaluated as hexadecimals. | |
stream_wrapper_register | Added the flags parameter. | |
5.2.3 | getimagesize | Read errors generated by this function downgraded to E_NOTICE from E_WARNING. |
htmlentities | The double_encode parameter was added. | |
htmlspecialchars | The double_encode parameter was added. | |
json_decode | The nesting limit was increased from 20 to 128 | |
XMLWriter::writeElement | The content parameter became optional. | |
XMLWriter::writeElementNS | The content parameter became optional. | |
PDOStatement::getColumnMeta | table field | |
5.2.2 - 5.2.6 | substr | If the start parameter indicates the position of a negative truncation or beyond, false is returned. Other versions get the string from start. |
5.2.2 | DOMDocument::registerNodeClass | Prior to 5.2.2, a previously registered extendedclass had to be unregistered before being able to register a new class extending the same baseclass. |
ftp_ssl_connect | The function was changed to return FALSE when it can't use an SSL connection, instead of fallbacking to a non-SSL one as previously. | |
phpinfo | The "Loaded Configuration File" information was added, when before only "Configuration File (php.ini) Path" existed. | |
preg_match | Named subpatterns now accept the syntax (?<name>) and (?'name') as well as (?P<name>). Previous versions accepted only (?P<name>). | |
preg_match_all | Named subpatterns now accept the syntax (?<name>) and (?'name') as well as (?P<name>). Previous versions accepted only (?P<name>). | |
proc_terminate | Previous versions used to destroy the given process resource. | |
token_get_all | Line numbers are returned in element 2 | |
5.2.1 | iterator_to_array | The use_keys parameter was added. |
json_decode | Added support for JSON decoding of basic types. | |
memory_get_peak_usage | Compiling with --enable-memory-limit is no longer required for this function to exist. | |
memory_get_usage | Compiling with --enable-memory-limit is no longer required for this function to exist. | |
mt_srand | The Mersenne Twister implementation in PHP now uses a new seeding algorithm by Richard Wagner. Identical seeds no longer produce the same sequence of values they did in previous versions. This behavior is not expected to change again, but it is considered unsafe to rely upon it nonetheless. | |
proc_open | Added the bypass_shell option to the other_options parameter. | |
realpath | Prior to this version, realpath returned FALSE if path is an empty string or NULL. | |
5.2.0 | base64_decode | strict added |
curl_multi_info_read | msgs_in_queue was added. | |
error_reporting | E_RECOVERABLE_ERROR introduced. | |
imagettftext | It is now possible to specify an hexadecimal entity in text. | |
imap_open | n_retries added | |
imap_reopen | n_retries added | |
mb_strrpos | Added the optional parameter offset. | |
memory_get_peak_usage | real_usage was added. | |
memory_get_usage | real_usage was added. | |
openssl_verify | The signature_alg parameter was added. | |
pathinfo | The PATHINFO_FILENAME constant was added. | |
pg_escape_bytea | connection added | |
pg_escape_string | connection added | |
session_get_cookie_params | The "httponly" entry was added in the returned array. | |
session_set_cookie_params | The httponly parameter was added. | |
set_error_handler | The error handler must return FALSE to populate $php_errormsg. | |
setcookie | The httponly parameter was added. | |
setrawcookie | The httponly parameter was added. | |
snmp_set_oid_numeric_print | Since PHP 5.2.0. | |
PDOStatement::execute | The keys from input_parameters must match the ones declared in the SQL. Before PHP 5.2.0 this was silently ignored. | |
SimpleXMLElement::children | The optional parameter is_prefix was added. | |
SimpleXMLElement::__construct | Added the ns and is_prefix parameters. | |
SoapServer::SoapServer | Added the typemap option. | |
XMLReader::open | encoding and options were added. | |
XMLReader::XML | encoding and options were added. | |
5.1.3 | DirectoryIterator::__construct | Throws RuntimeException if the path is an empty string. |
curl_getinfo | Introduced CURLINFO_HEADER_OUT. | |
get_headers | This function now uses the default stream context, which can be set/changed with the stream_context_set_default function. | |
http_build_query | Square brackets are escaped. | |
imagecolorallocate | Returns FALSE if the allocation failed. Previously -1 was returned. | |
imagecolorallocatealpha | Returns FALSE if the allocation failed. Previously -1 was returned. | |
imagepng | Added the filters parameter. | |
mb_get_info | The entries "mail_charset", "mail_header_encoding", and "mail_body_encoding" were made available. | |
SoapClient::__doRequest | The one_way parameter was added. | |
XMLReader::getAttribute | Return NULL if no attribute found. Previously, returned an empty string. | |
5.1.2 | date_default_timezone_set | The function started to validate the timezone_identifier parameter. |
header | This function now prevents more than one header to be sent at once as a protection against header injection attacks. | |
http_build_query | The arg_separator parameter was added. | |
imagepng | Added the quality parameter. | |
parse_url | Added the component parameter. | |
SimpleXMLElement::__construct | Added the options and data_is_url parameters. | |
5.1.1 | date | There are useful constants of standard date/time formats that can be used to specify the format parameter. |
debug_backtrace | Added the current object as a possible return element. | |
gmdate | There are useful constants of standard date/time formats that can be used to specify the format parameter. | |
5.1.0 | DirectoryIterator::__construct | Throws RuntimeException on error. Previously, threw Exception. |
DOMDocument::save | Added the options parameter | |
DOMDocument::saveXML | Added the options parameter | |
class_implements | Added the option to pass the class parameter as a string. Added the autoload parameter. | |
class_parents | Added the option to pass the class parameter as a string. Added the autoload parameter. | |
ctype_digit | Before PHP 5.1.0, this function returned TRUE when text was an empty string. | |
curl_setopt | Introduced CURLOPT_AUTOREFERER, CURLOPT_BINARYTRANSFER, CURLOPT_FTPSSLAUTH, CURLOPT_PROXYAUTH, and CURLOPT_TIMECONDITION. | |
date | The valid range of a timestamp is typically from Fri, 13 Dec 1901 20:45:54 GMT to Tue, 19 Jan 2038 03:14:07 GMT. (These are the dates that correspond to the minimum and maximum values for a 32-bit signed integer). However, before PHP 5.1.0 this range was limited from 01-01-1970 to 19-01-2038 on some systems (e.g. Windows). | |
date | Now issues the E_STRICT and E_NOTICE time zone errors. | |
date_sunrise | Now issues the E_STRICT and E_NOTICE time zone errors. | |
date_sunset | Now issues the E_STRICT and E_NOTICE time zone errors. | |
explode | Support for negative limits was added | |
fgetcsv | The length is now optional. Default is 0, meaning no length limit. | |
file_get_contents | Added the offset and maxlen parameters. | |
file_put_contents | Added support for LOCK_EX and the ability to pass a stream resource to the data parameter | |
get_parent_class | If called without parameter outside object, this function would have returned NULL with a warning, but now returns FALSE. | |
gettimeofday | The return_float parameter was added. | |
glob | GLOB_ERR was added | |
gmdate | The valid range of a timestamp is typically from Fri, 13 Dec 1901 20:45:54 GMT to Tue, 19 Jan 2038 03:14:07 GMT. (These are the dates that correspond to the minimum and maximum values for a 32-bit signed integer). However, before PHP 5.1.0 this range was limited from 01-01-1970 to 19-01-2038 on some systems (e.g. Windows). | |
gmmktime | As of PHP 5.1.0, the is_dst parameter became deprecated. As a result, the new timezone handling features should be used instead. | |
idate | Now issues the E_STRICT and E_NOTICE time zone errors. | |
imagerotate | ignore_transparent was added. | |
intval | Throws E_NOTICE and returns 1, when an object is passed to var. | |
localtime | Now issues the E_STRICT and E_NOTICE time zone errors. | |
md5_file | Changed the function to use the streams API. It means that you can use it with wrappers, like md5_file('http://example.com/..') | |
mktime | Now issues the E_STRICT and E_NOTICE time zone errors. | |
mktime | The is_dst parameter became deprecated. Made the function return FALSE on error, instead of -1. Fixed the function to accept the year, month and day to be all passed as zero. | |
mktime | When called with no arguments, mktime throws E_STRICT notice. Use the time function instead. | |
mssql_connect | The new_link parameter was added | |
openssl_pkcs7_verify | The content parameter was added. | |
preg_replace | Added the count parameter | |
preg_replace_callback | The count parameter was added | |
session_regenerate_id | Added the delete_old_session parameter. | |
sha1_file | Changed the function to use the streams API. It means that you can use it with wrappers, like sha1_file('http://example.com/..') | |
str_word_count | Added the charlist parameter | |
stream_copy_to_stream | Added the offset parameter | |
stream_filter_append | Prior to PHP 5.1.0, this function returns TRUE on success or FALSE on failure. | |
stream_filter_prepend | Prior to PHP 5.1.0, this function returns TRUE on success or FALSE on failure. | |
stream_get_contents | The offset was added. | |
strftime | Now issues the E_STRICT and E_NOTICE time zone errors. | |
strtotime | Now returns FALSE on failure, instead of -1. | |
strtotime | Now issues the E_STRICT and E_NOTICE time zone errors. | |
substr_compare | Added the possibility to use a negative offset. | |
substr_count | Added the offset and the length parameters | |
var_export | Possibility to export classes and arrays containing classes using the __set_state() magic method. | |
XSLTProcessor::registerPHPFunctions | The restrict parameter was added. | |
5.0.5 | php_check_syntax | This function was removed from PHP. |
5.0.4 | msql_fetch_array | A bug was fixed when retrieving data from columns containing NULL values. Such columns were not placed into the resulting array. |
msql_fetch_object | A bug was fixed when retrieving data from columns containing NULL values. Such columns were not placed into the resulting array. | |
msql_fetch_row | A bug was fixed when retrieving data from columns containing NULL values. Such columns were not placed into the resulting array. | |
5.0.3 | get_class_vars | get_class_vars will only return the properties that can be accessed from the current scope. |
is_subclass_of | You may also specify the object parameter as a string (the name of the class) | |
php_check_syntax | Calling exit after php_check_syntax resulted in a Segfault. | |
5.0.2 | array_slice | The optional preserve_keys parameter was added. |
class_exists | No longer returns TRUE for defined interfaces. Use interface_exists. | |
get_class_vars | Calling get_class_vars will now expose all the properties as an array, unlike previous behaviour where protected and private properties were prefixed with nul bytes. | |
sort | Added SORT_LOCALE_STRING | |
strtotime | In PHP 5 up to 5.0.2, "now" and other relative times are wrongly computed from today's midnight. This differs from other versions where it is correctly computed from current time. | |
5.0.1 | get_class_vars | Calling get_class_vars will expose all properties, as when converting an object to a class. |
php_check_syntax | error_message is passed by reference. | |
5.0.0 | apache_get_modules | Became available when using Apache 1, or the PHP Apache 2 filter API. Before this time, it was only available when using the Apache 2 handler API. |
curl_setopt | Introduced CURLOPT_FTP_USE_EPRT, CURLOPT_NOSIGNAL, CURLOPT_UNRESTRICTED_AUTH, CURLOPT_BUFFERSIZE, CURLOPT_HTTPAUTH, CURLOPT_PROXYPORT, CURLOPT_PROXYTYPE, CURLOPT_SSLCERTTYPE, and CURLOPT_HTTP200ALIASES. | |
dirname | dirname is now binary safe | |
error_reporting | E_STRICT introduced (not part of E_ALL). | |
is_a | This function became deprecated in favour of the instanceof operator. Calling this function will result in an E_STRICT warning. | |
opendir | path supports the ftp:// URL wrapper. | |
parse_ini_file | Values enclosed in double quotes can contain new lines. | |
rename | rename can now also be used with some URL wrappers. Refer to for a listing of which wrappers support rename. | |
rmdir | As of PHP 5.0.0 rmdir can also be used with some URL wrappers. Refer to for a listing of which wrappers support rmdir. | |
strip_tags | strip_tags is now binary safe. | |
strrpos | The needle may now be a string of more than one character. | |
strtotime | Microseconds began to be allowed, but they are ignored. | |
unlink | As of PHP 5.0.0 unlink can also be used with some URL wrappers. Refer to for a listing of which wrappers support unlink. |