附录
PHP Manual

更新日志

对绑定的扩展的函数有以下更新。

VersionFunctionDescription
Since 5.0.0get_parent_classThe object parameter is optional if called from the object's method.
Since 5.0cal_info参数calendar作为可选项,缺省时默认值为"所有历法"。
Since 4.3.0easter_dateyear参数可选,缺省的默认值是当年。
 easter_days参数year 可选,缺省默认值是当年。
 easter_days引入参数 method。
Since 4.2.0srandseed 成为可选,省略时会默认使用随机值。
Since 4.0.5get_parent_classIf object is a string, returns the name of the parent class of the class with that name.
prior to 5.3.0get_object_varsIf the object isn't an object, then get_object_vars would return FALSE
Prior to 5.1.3imagecolorallocatealphaReturns -1 if the allocation failed.
prior to 4.2.0get_object_varsIf the variables declared in the class of which the object is an instance, have not been assigned a value, those will not be returned in the array
PHP 7.0.15, PHP 7.1.1get_defined_functions增加 exclude_disabled 参数。
PHP 5.3.2 (PECL OCI8 1.4)oci_set_prefetchBefore this release, rows must be >= 1.
PHP 5.3 (PECL OCI8 1.3.4)oci_set_prefetchBefore this release, prefetching was limited to the lesser of rows rows and 1024 * rows bytes. The byte size restriction has now been removed.
Before 5.1.0get_parent_classIf called without parameter outside object, this function would have returned NULL with a warning.
7.4.0idn_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.
7.3.0ftp_nb_fget参数 mode 变为可选参数。 在之前的版本中,这是一个必填参数。
 ftp_nb_fput参数 mode 变为可选参数。 在之前的版本中,这是一个必填参数。
 is_countableis_countable has been added.
7.2.0DOMNodeList::countThe Countable interface is implemented and returns the value of the length property.
 count当无效的 countable 类型传递给 array_or_countable 参数时,count 会产生警告。
 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.
 hash_copy接受的参数以及返回值从资源类型修改为 HashContext 对象类型。
 hash_final接收参数从资源类型修改为 HashContext 对象类型。
 hash_hmac不再支持非加密的哈希函数(adler32,crc32,crc32b,fnv132,fnv1a32,fnv164,fnv1a64,joaat)。
 hash_hmac_file不再支持非加密的哈希函数(adler32,crc32,crc32b,fnv132,fnv1a32,fnv164,fnv1a64,joaat)。
 hash_init返回 HashContext 对象,不再返回资源类型。
 hash_init当使用 HASH_HMAC 选项的时候,不再支持非加密的哈希函数(adler32,crc32,crc32b,fnv132,fnv1a32,fnv164,fnv1a64,joaat)。
 hash_pbkdf2不再支持非加密的哈希函数(adler32,crc32,crc32b,fnv132,fnv1a32,fnv164,fnv1a64,joaat)。
 hash_update接收参数从资源类型修改为 HashContext 对象类型。
 hash_update_file接收参数从资源类型修改为 HashContext 对象类型。
 hash_update_stream接收参数从资源类型修改为 HashContext 对象类型。
 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.
 number_formatnumber_format 现在无法返回 -0,之前可能返回 -0,因为 number 可能会是 -0.01。
 packfloat 和 double 类型支持打断和小端。
 parse_str不带第二个参数的情况下使用 parse_str 会产生 E_DEPRECATED 警告。
 password_hash添加 PASSWORD_ARGON2I,支持 Argon2 密码散列算法。
 proc_nice在 Windows 平台上可用。
 session_abortThe return type of this function is bool now. Formerly, it has been void.
 session_namesession_name 函数会检查会话状态, 之前的版本仅仅检查 cookie 状态。 所以,旧版本的 PHP 允许你在调用 session_start 函数之后再调用 session_name 函数, 新版本的 PHP 不再允许这样做了。
 session_resetThe return type of this function is bool now. Formerly, it has been void.
 session_set_cookie_params成功时返回 TRUE, 或者在失败时返回 FALSE。 之前版本中是返回 void 的。
 session_write_closeThe return type of this function is bool now. Formerly, it has been void.
 unpackfloat and double types supports both Big Endian and Little Endian.
 SQLite3::openBlobThe flags parameter has been added, allowing to write BLOBs; formerly only reading was supported.
7.1.5IntlDateFormatter::formatSupport for providing general DateTimeInterface objects to the value 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.0DateInterval::formatThe F and f format characters were added.
 DateTime::setTime新增 microseconds 参数。
 array_rand内置的随机数生成算法从 libc rand 函数改成梅森旋转 伪随机数生成算法。
 getopt添加 optind 参数。
 grapheme_extractSupport for negative starts has been added.
 grapheme_striposSupport for negative offsets has been added.
 grapheme_strposSupport for negative offsets has been added.
 hash_algos加入 sha512/224,sha512/256,sha3-224,sha3-256,sha3-384 以及 sha3-512 算法的支持。
 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_encode对 Double 的值进行编码时,使用 serialize_precision 代替 precision。
 long2ip参数 proper_address 的类型从 string 改成 integer。
 mb_eregmb_ereg will now set regs to an empty array, if nothing matched. Formerly, regs was not modified in that case.
 mb_ereg_replaceThe e modifier has been deprecated.
 mb_ereg_search_setposSupport for negative positions has been added.
 mb_eregimb_eregi will now set regs to an empty array, if nothing matched. Formerly, regs was not modified in that case.
 mb_eregi_replaceThe e modifier has been deprecated.
 mb_strimwidth支持负数的 start 和 width。
 mb_stripos支持 offset 使用负数。
 mb_strpos支持负数的 offset。
 openssl_decrypt添加了 tag 和 aad 参数。
 openssl_encrypt增加了 tag、aad、tag_length 参数
 openssl_pkey_new添加了 curve_name 配置参数使得可以创建 EC 密钥。
 session_start当 session_start 执行失败, 无法开始一个会话的时候,会返回 FALSE, 并且不会初始化超级变量 $_SESSION。
 shuffle内置的随机数产生算法从 libc rand 函数改成 梅森旋转伪随机数生成算法。
 str_shuffle内置的随机算法从 libc rand 函数改成了梅森旋转演伪随机数发生算法。
 stripos开始支持负数的 offset。
 strpos开始支持负数的 offset。
 substr_count开始支持负数的 offset 和 length。
 unpackThe optional offset has been added.
7.1DateTime::__construct微秒部分不再是 '00000' 了,而是真实的微秒数据。
7.0.15,7.1.1pack添加了"e","E","g"和"G"代码以启用float和double的字节顺序支持。
7.0.11iconv_substr如果 str 等长于 offset 个字符, 将返回空字符串。之前的版本里,这种情况是会返回 FALSE 的。
7.0.10SQLite3::__constructThe filename can now be empty to use a private, temporary on-disk database.
7.0.7curl_setopt引入 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 和 CURLSSLOPT_NO_REVOKE。
7.0.0array_columninput 参数现在可以是包含对象的数组。
 assertassert 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.
 curl_setopt禁用 CURLOPT_SAFE_UPLOAD 的选项已被删掉了。 所有的 curl 文件的上传都必须使用 CURLFile。
 define允许 array 的值。
 dlPHP-FPM 模式下已禁用 dl。
 getrusage此函数现在开始支持 Windows。
 json_decodeAn empty PHP string or value that after casting to string is an empty string (NULL, FALSE) results in JSON syntax error.
 json_decodeRejected RFC 7159 incompatible number formats - top level (07, 0xff, .1, -.1) and all levels ([1.], [1.e1])
 keyarray 现在总是会传值。 在此之前,它会尽可能传引用,否则就传值。
 list赋值操作的顺序发生了变化。
 listlist 表达式不再可以完全为空。
 list字符串无法再被拆包(unpack)。
 mktimeis_dst参数已经被移除。
 openssl_open添加了 iv 参数
 openssl_seal添加 iv 变量。
 preg_replace不再支持 /e修饰符。 请用 preg_replace_callback 代替。
 session_regenerate_idsession_regenerate_id 函数在关闭过期会话之前保存其中的数据。
 session_set_save_handler新增可选参数 validate_sid 和 参数 update_timestamp。
 session_start新加 options 参数。
 shmop_closeThe type of shmid has been changed from int to resource.
 shmop_deleteThe type of shmid has been changed from int to resource.
 shmop_openThe return type of shmop_open has been changed from int to resource.
 shmop_readThe type of shmid has been changed from int to resource.
 shmop_sizeThe type of shmid has been changed from int to resource.
 shmop_writeThe type of shmid has been changed from int to resource.
 substr如果 string 的字符串长度与 start 相同时将返回一个空字符串。在之前的版本中,这种情况将返回 FALSE 。
 IntlDateFormatter::setTimeZoneIdThis function has been removed.
5.6.6json_encodeoptions 参数增加常量: JSON_PRESERVE_ZERO_FRACTION
5.6.5cryptWhen 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.3pack添加了“q”、“q”、“J”和“P”代码以支持处理64位数字。
5.6.1sem_acquireThe $nowait parameter was added.
5.6.0array_fillnum 现在可以是零。 之前 num 必须大于零。
 array_filter添加可选的参数 flag,以及常量 ARRAY_FILTER_USE_KEY 和 ARRAY_FILTER_USE_BOTH。
 cryptRaise E_NOTICE security warning if salt is omitted.
 curl_setopt默认 CURLOPT_SAFE_UPLOAD为 TRUE 。
 curl_setopt移出 CURLOPT_CLOSEPOLICY和相关的值。
 hash_algos加入对 gost-crypto 算法的支持。 参照 RFC 4357,11.2 小节 定义的 CryptoPro S-box 表格实现 GOST 哈希函数。
 html_entity_decodeThe default value for the encoding parameter was changed to be the value of the default_charset configuration option.
 htmlentitiesThe default value for the encoding parameter was changed to be the value of the default_charset configuration option.
 htmlspecialcharsThe default value for the encoding parameter was changed to be the value of the default_charset configuration option.
 json_decodeInvalid non-lowercased variants of the true, false and null literals are no longer accepted as valid input, and will generate warnings.
 mb_regex_encodingDefault encoding is changed to UTF-8. It was EUC-JP Previously.
 mcrypt_create_ivsource 参数的默认值是 MCRYPT_DEV_URANDOM。
 mcrypt_decrypt不再接受无效长度的 key and iv 参数。 如果参数长度无效,则 mcrypt_decrypt 函数会产生警告并且返回 FALSE。 之前版本中,对于长度不足的密钥和初始向量会在其后补齐 '\0' 使其达到有效长度。
 mcrypt_encrypt不再接受无效长度的 key and iv 参数。 如果参数长度无效,则 mcrypt_decrypt 函数会产生警告并且返回 FALSE。 之前版本中,对于长度不足的密钥和初始向量会在其后补齐 '\0' 使其达到有效长度。
 pg_lo_truncateAdded 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.
 stream_socket_enable_cryptoIntroduce STREAM_CRYPTO_METHOD_ANY_CLIENT, STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT, STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT, STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT, STREAM_CRYPTO_METHOD_ANY_SERVER, STREAM_CRYPTO_METHOD_TLSv1_0_SERVER, STREAM_CRYPTO_METHOD_TLSv1_1_SERVER, STREAM_CRYPTO_METHOD_TLSv1_2_SERVER.
 stream_socket_enable_cryptoThe crypto_type is now optional.
 ReflectionClass::newInstanceWithoutConstructorAll internal classes can now be instantiated except for those declared final.
 XMLReader::getAttributeNoXMLReader::getAttributeNo now returns NULL if the attribute doesn't exist.
 XMLReader::getAttributeNsXMLReader::getAttributeNS now returns NULL if the attribute doesn't exist.
5.5.21cryptWhen 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.3imagescaleThe 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.11substr_comparelength 可以是 0。
5.5.8DatePeriod::__constructend type changed to DateTimeInterface. Previously, DateTime.
5.5.7apache_request_headers此函数可用于 CLI server。
 apache_response_headers此函数可用于 CLI server.
 getallheaders此函数可用于 CLI server。
5.5.2DOMDocument::schemaValidateAdded the flags parameter
 DOMDocument::schemaValidateSourceAdded the flags parameter
5.5.1hex2bin如果输入的字符串是无效的十六进制字符串则抛出一个警告,
 session_set_save_handler加入可选参数 create_sid。
5.5.0/PECL 3.0.0IntlDateFormatter::createAn 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::formatSupport for providing IntlCalendar objects to the value parameter was added.
 IntlDateFormatter::setCalendarIt became possible to pass an IntlCalendar object.
5.5.0DatePeriod::__constructstart type changed to DateTimeInterface. Previously, DateTime.
 curl_setopt引入 CURLOPT_SHARE。
 curl_setopt添加 cURL 资源作为 CURLOPT_PROGRESSFUNCTION 回调函数的第一个参数。
 emptyempty 现在支持表达式了,而不仅仅是变量。
 ip2longPrior 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.
 json_encode增加 depth 参数。
 json_encode增加了 JSON_PARTIAL_OUTPUT_ON_ERROR 选项。
 json_encode失败时返回的值从 null 字符串改成 FALSE。
 pack“Z”代码添加了与“a”等效的功能,以实现Perl兼容性。
 php_logo_guidphp_logo_guid 从 PHP 中移除。
 preg_replace/e 修饰符已经被弃用了。使用 preg_replace_callback 代替。参见文档中 PREG_REPLACE_EVAL 关于安全风险的更多信息。
 setcookie发送给客户端的 Set-Cookie 头现在会包含 Max-Age 属性。
 setrawcookie发送给客户端的 Set-Cookie 头现在会加上 Max-Age 属性。
 unpackChanges 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_guidzend_logo_guid 从 PHP 中移除了。
 IntlDateFormatter::setTimeZoneIdThis function has been deprecated.
 SoapClient::SoapClientNew ssl_method option.
5.4.43, 5.5.27, 5.6.11escapeshellcmd感叹号会被空格所替换。
5.4.32, 5.5.16ucwords增加了 delimiters 参数。
5.4.8assert增加了参数 description。 description 现在也作为第四个参数提供给 ASSERT_CALLBACK 模式里的回调函数。
 mb_strcutPassing NULL as length extracts all bytes to the end of the string. Prior to this version NULL was treated the same as 0.
 mb_substrlength 传入 NULL,则从 start 提取到字符串的结尾处。 在之前的版本里, NULL 会被当作 0 来处理。
5.4.7parse_url修复了 host 在 协议 省略时的识别。
5.4.4hex2bin如果输入的字符串有多余将抛出异常。 PHP 5.4.0 起字符串将被静默地接受,但是最后的字节会被截断。
5.4.0/PECL 2.0.0b1idn_to_asciiAdded the parameters variant and idna_info; UTS #46 support (requires ICU ≥ 4.6).
 idn_to_utf8Added the parameters variant and idna_info; UTS #46 support (requires ICU ≥ 4.6).
5.4.0DOMDocument::loadHTMLAdded options parameter.
 DOMDocument::loadHTMLFileAdded options parameter.
 apache_child_terminate该函数目前也可以用于FastCGI模式了。以前,它仅在PHP作为Apapche的模块安装时支持。
 apache_request_headers此函数可用于 FastCGI。 此前仅在PHP以 Apache 模块方式运行时支持。
 apache_response_headers此函数可用于 FastCGI。 此前仅在PHP以 Apache 模块方式运行时支持。
 array_combine(修复)早期版本中如果是空数组就报E_WARNING的错并且返回FALSE。
 array_multisortarray1_sort_flags 增加 SORT_NATURAL 和 SORT_FLAG_CASE 选项。
 date_default_timezone_get不再根据操作系统的信息来推测时区,因为这是不可靠的。
 date_default_timezone_get不再使用 TZ 来推测时区。
 define_syslog_variablesThis function was removed from PHP.
 dns_get_record增加了参数raw。
 empty检查非数字的字符串偏移量会返回 TRUE.
 filter_input_array添加 add_empty 参数.
 filter_var_array添加 add_empty 参数。
 get_html_translation_tableThe default value for the encoding parameter was changed to UTF-8.
 get_html_translation_tableThe constants ENT_HTML401, ENT_XML1, ENT_XHTML and ENT_HTML5 were added.
 get_magic_quotes_gpc始终返回 FALSE,因为这个魔术引号功能已经从 PHP 中移除了。
 get_magic_quotes_runtime总是返回 FALSE,因为魔术引号(magic quotes)功能已经从 PHP 中移除。
 getallheaders此函数可用于 FastCGI。 此前仅在PHP以 Apache 模块方式运行时支持。
 gzcompressAdded encoding parameter.
 gzdeflateAdded encoding parameter.
 gzencodeFORCE_DEFLATE now generates RFC 1950 compliant output.
 hashtiger 算法使用大端(big-endian)字节序。参见下面的示例。
 hash_algos加入对于 joaat,fnv132 和 fnv164 算法的支持。移除 Salsa10 和 Salsa20 算法。
 html_entity_decodeThe constants ENT_HTML401, ENT_XML1, ENT_XHTML and ENT_HTML5 were added.
 html_entity_decodeDefault encoding changed from ISO-8859-1 to UTF-8.
 htmlentities增加常量 ENT_SUBSTITUTE、 ENT_DISALLOWED、 ENT_HTML401、 ENT_XML1、 ENT_XHTML、 ENT_HTML5。
 htmlentitiesencoding 参数的默认值改成 UTF-8。
 htmlspecialcharsencoding 参数的默认值改成 UTF-8。
 htmlspecialchars增加常量 ENT_SUBSTITUTE、 ENT_DISALLOWED、 ENT_HTML401、 ENT_XML1、 ENT_XHTML、 ENT_HTML5。
 htmlspecialchars_decode增加了 ENT_HTML401、ENT_XML1、 ENT_XHTML 和 ENT_HTML5 等常量。
 http_build_query加入了 enc_type 参数。
 iconv这个版本起,字符非法时候会返回 FALSE,除非在输出字符里指定了 //IGNORE 。 在之前版本,它会返回一部分字符串。
 imagewebp支持把 resource 流作为 to 参数传入。
 isset检查字符的非数字偏移量将会返回 FALSE。
 json_decodeThe options parameter was added.
 json_encodeoptions 参数增加常量: JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, 和 JSON_UNESCAPED_UNICODE。
 mb_encode_numericentityAdded is_hex parameter.
 number_formatThis function now supports multiple bytes in dec_point and thousands_sep. Only the first byte of each separator was used in older versions.
 openssl_decrypt将 raw_output 更改至 options。
 openssl_encryptraw_output 改到 options。
 preg_match_all参数matches成为可选的。
 scandirsorting_order now accepts constants. Any nonzero value caused descending order in previous versions.
 session_set_save_handler加入 SessionHandlerInterface 接口以及 SessionHandler 类,以方便用户实现自定义的会话保存管理器。
 snmp_set_valueretrievalConstants 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添加了 sort_flags 内 SORT_NATURAL 和 SORT_FLAG_CASE 的支持。
 Phar::setStubAdded len parameter.
 PharData::setStubAdded len parameter.
 SimpleXMLElement::getDocNamespacesAdded from_root parameter.
 SoapClient::SoapClientNew keep_alive option.
5.4grapheme_substrIf 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.9DateTime::createFromFormat新增 format 格式字符串中对于 + 格式字符的支持。
 dl尽管不推荐,但 PHP-FPM 模式下启用了 dl。
 is_aAdded allow_string parameter
 is_subclass_ofAdded allow_string parameter
5.3.7cryptAdded $2x$ and $2y$ Blowfish modes to deal with potential high-bit attacks.
5.3.6DateTime::modify支持绝对的日期时间作为变化量, 在之前的版本中,仅支持相对变化量。
 DOMDocument::saveHTMLThe node parameter was added.
 array_product空数组现在会产生 1,而之前此函数处理空数组会产生 0。
 preg_match如果 offset 比 subject 的长度还要大则返回 FALSE。
 preg_match_all如果 offset 大于 subject 的程度,将返回 FALSE。
 PDO_MYSQL DSNPrior to version 5.3.6, charset was ignored.
5.3.4get_html_translation_tableThe encoding parameter was added.
 rawurlencode因为 rawurlencode 使用了 EBCDIC,所以波浪线字符不会再被编码。
 sleep在PHP 5.3.4之前,Windows平台下无论 sleep 是否成功调用,总是会返回一个 NULL。
 strip_tagsstrip_tags ignores self-closing XHTML tags in allowable_tags.
 IntlDateFormatter::formatSupport for providing DateTime objects to the value parameter was added.
5.3.3DOMXPath::evaluateThe registerNodeNS parameter was added.
 DOMXPath::queryThe registerNodeNS parameter was added.
 json_encodeoptions 参数增加常量:JSON_NUMERIC_CHECK。
 ldap_sasl_bindSupport on Windows was added.
 openssl_decrypt添加 iv 参数。
 openssl_encrypt增加 iv 参数。
 parse_url在 URL 解析失败时将不会产生 E_WARNING 级别的错误。
5.3.2crypt基于 Ulrich Drepper 的实现,新增基于 SHA-256 算法和 SHA-512 算法的 crypt。
 crypt修正了 Blowfish 算法由于非法循环导致的问题,返回“失败”字符串(“*0” 或 “*1”)而不是转而使用 DES 算法。
 flock在文件资源句柄关闭时不再自动解锁。现在要解锁必须手动进行。
 gmp_initThe base was extended from 2 to 36, to 2 to 62 and -2 to -36.
 gmp_strvalThe base was extended from 2 to 36, to 2 to 62 and -2 to -36.
5.3.1get_defined_constants仅作用于 Windows:内核常量归类到 Core,之前是 mhash。
 ibase_queryOn 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可以在 Windows 上跨驱动器 rename 文件。
5.3.0 起get_classobject 默认参数现在是 NULL ,所以,现在传入 NULL 到 object 参数时,和没传参数的结果一样。
5.3.0DateTime::__construct如果 time 参数不是一个有效的 日期/时间格式, 会抛出异常。 在之前的版本中是会发出一个错误。
 DateTime::modify将返回值从NULL改为 DateTime 类型。
 DateTime::setDate将返回值从NULL改为 DateTime 类型。
 DateTime::setISODate将返回值从NULL改为 DateTime 类型。
 DateTime::setTime将返回值从NULL改为 DateTime 类型。
 DateTime::setTimezone将返回值从NULL改为 DateTime 类型。
 DateTimeZone::getTransitionsThe optional timestamp_begin and timestamp_end were added.
 DateTimeZone::listIdentifiers添加可选的 what 和 country 参数。
 acoshThis function is now available on all platforms
 array_multisortarray1_sort_flags 增加选项 SORT_LOCALE_STRING。
 array_reduce修改 initial 类型,允许传入 mixed,之前只能是 integer。
 array_searchAs with all internal PHP functions as of 5.3.0, array_search returns NULL if invalid parameters are passed to it.
 asinh此函数在所有平台上均可用
 atanh此函数在所有平台上都可以用了
 call_user_func对面向对象里面的关键字的解析有所增强。在此之前,使用两个冒号来连接一个类和里面的一个方法,把它作为参数来作为回调函数的话,将会发出一个E_STRICT的警告,因为这个传入的参数被视为静态方法。
 call_user_func_array对面向对象里面的关键字的解析有所增强。在此之前,使用两个冒号来连接一个类和里面的一个方法,把它作为参数来作为回调函数的话,将会发出一个E_STRICT的警告,因为这个传入的参数被视为静态方法。
 checkdnsrr这个函数在Windows平台上也可以使用了。
 clearstatcache增加了可选的 clear_realpath_cache 和 filename 参数.
 copy增加了对 context 的支持。
 cryptPHP 现在包含了它自己的 MD5 Crypt 实现,包括标准 DES 算法,扩展的 DES 算法以及 Blowfish 算法。如果系统缺乏相应的实现,那么 PHP 将使用它自己的实现。
 curl_setopt引入 CURLOPT_PROGRESSFUNCTION。
 date_default_timezone_set现在会抛出 E_WARNING 而不是 E_STRICT。
 define_syslog_variablesThis function now throws an E_DEPRECATED notice.
 dl由于稳定性,dl 在某些 SAPI 中被禁用。仅仅允许 dl 的 SAPI 为 CLI 和 Embed。 使用 扩展加载指令 作为替代。
 dns_get_record在此版本之前,如果给参数authns传入值,则必须同时传入addtl的值。
 dns_get_record可以是在windows平台上使用这个函数了。
 expm1此函数在所有平台上均可用
 fgetcsv增加了 escape 参数。
 fnmatch此函数开始在 Windows 平台上生效。
 func_get_arg该函数可以在参数列表中使用。
 func_get_argIf 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. (不知道如何翻译跟好,直接参考例2即可明白)
 func_get_argsIf 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. (不知道如何翻译跟好,直接参考例2即可明白)
 func_get_args该函数可以在参数列表中使用。
 func_num_argsIf 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_argsThis function can now be used in parameter lists.
 get_cfg_varget_cfg_var 被修复,能够返回 "array" 的 ini 选项。
 get_defined_constants内核常量归类为 Core,之前是 internal。在 Windows 上,内核常量归类到 mhash。
 get_object_varsThis function now returns NULL if the object isn't an object.
 getimagesizeAdded icon support.
 getmxrrWindows 平台上也能用这个函数了。
 getopt此函数不再依赖于操作系统,现在也能够在 Windows 上运行。
 getopt参数 longopts 在所有系统平台上均可用。
 getopt增加了可选值的支持(用"::"指定)。
 getopt支持 "=" 作为 参数和值的分隔符。
 hash_algos加入对 md2,ripemd256,ripemd320,salsa10,salsa20,snefru256 和 sha224 哈希算法的支持。
 htmlentities增加常量 ENT_IGNORE。
 htmlspecialchars增加常量 ENT_IGNORE。
 imagecolorclosesthwb在 Windows 平台上可用
 imagefilterPixelation support (IMG_FILTER_PIXELATE) was added.
 inet_ntopThis function is now available on Windows platforms.
 inet_ptonThis function is now available on Windows platforms.
 ini_get当配置项不存在,之前会返回空字符串,现在会返回 FALSE。
 ini_get_all增加参数 details。
 is_aThis function is no longer deprecated, and will therefore no longer throw E_STRICT warnings.
 json_decodeAdded the optional depth. The default recursion depth was increased from 128 to 512
 json_encode增加 options 参数.
 link该功能在 Windows 平台下开始有效(Vista、 Server 2008 或更高版本)。
 linkinfoWindows 平台上开始可用(Vista、Server 2008 或更高版本)。
 log1p此函数在所有平台上均可用
 mb_get_info条目 "http_output_conv_mimetypes" 开始有效。
 mcrypt_create_ivMCRYPT_DEV_RANDOM 和 MCRYPT_DEV_URANDOM 在 Windows 平台也可用了。
 mcrypt_create_iv不再需要提前调用 srand 函数, 由本函数自动完成调用。
 mktimemktime now throws E_DEPRECATED notice if the is_dst parameter is used.
 nl2br新增可选的 is_xhtml 参数。在此之前,总是插入 '<br />'。
 openssl_open添加了 method 参数
 openssl_seal添加 method 变量。
 parse_ini_fileAdded optional scanner_mode parameter. Single quotes may now be used around variable assignments. Hash marks (#) may no longer be used as comments and will throw a deprecation warning if used.
 pg_lo_importThe optional object_id was added.
 preg_quote字符 - 被增加为需要转义的。
 property_existsThis function checks the existence of a property independent of accessibility.
 rawurlencode现在符合了RFC 3986。
 readlink此函数在 Windows 平台下可用(Vista、Server 2008 或更高版本)。
 realpath在之前的版本中,在 *BSD 系统上,如果仅仅是 path 不存在的话,realpath 并不会像其它系统那样返回 FALSE。
 register_tick_functionTicks are now supported on threaded web server modules.
 round引入了 mode 参数
 session_start如果函数调用失败返回 FALSE, 之前版本返回了 TRUE。
 setlocaleThis function now throws an E_DEPRECATED notice if a string is passed to the category parameter instead of one of the LC_* constants.
 shm_attachThis function now returns a 资源(resource) instead of an integer.
 socket_create_pairThis function is now re-enabled on Windows platforms.
 stream_context_create增加了可选参数 params 。
 stream_socket_pair这个函数在windows平台不可用
 stristr新增可选的 before_needle 参数。
 strlenPrior versions treated arrays as the string Array, thus returning a string length of 5 and emitting an E_NOTICE level error.
 strstr新增可选的 before_needle 参数。
 strtotime在 PHP 5.3.0 之前, 24:00 不是一个有效的格式,并且 strtotime 会返回 FALSE。
 strtotimePrior 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_connectThe new parameter was added.
 symlink此函数在 Windows 平台上可用(Vista、Server 2008 或更高版本)。
 time_nanosleep至此之后该函数在Windows平台下可用。
 time_sleep_until自此,函数在Windows平台可用。
 touch能够修改 Windows 下目录的最后修改时间。
 ReflectionFunction::__constructname can now be a closure.
 XMLReader::expandThe parameter basenode was added.
5.2.11get_defined_constantscategorize 参数现在可以合适得被处理。 在此之前,categorize 被解释为 !is_null($categorize),导致任何非 NULL 的值会强制常量分类。
5.2.10array_randThe resulting array of keys is no longer shuffled.
 array_unique修改回 sort_flags 的默认值为 SORT_STRING。
 curl_setopt引入 CURLOPT_PROTOCOLS, and CURLOPT_REDIR_PROTOCOLS.
 ip2long再此之前的版本, ip2long 有时会返回即使这不是一个IPV4的标准地址的数字地址。
 natsort用零填充的数字字符串 (例如 '00005')现在本质上会忽略掉填充的前道零。
5.2.9array_unique增加可选选项sort_flags,默认值 SORT_REGULAR。 5.2.9 之前,此函数内部使用 SORT_STRING 排序。
5.2.8XSLTProcessor::importStylesheetAccepts SimpleXMLElement again which was broken since PHP 5.2.6.
5.2.7parse_ini_fileOn syntax error this function will return FALSE rather than an empty array.
 roundround 的内部运作修改符合 C99 的标准。
 strtotimeIn 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.6fopen增加了选项 'c' 和 'c+'
5.2.5addcslashesThe escape sequences \v and \f were added.
 imagefilterAlpha support for IMG_FILTER_COLORIZE was added.
5.2.4array_slicelength 参数默认值改成 NULL。 现在 length 为 NULL 时,意思是说使用 array 的长度。 之前的版本里, NULL 的 length 的意思是长度为零(啥也不返回)。
 checkdnsrr增加了TXT的记录类型。
 curl_setopt引入了 CURLOPT_PRIVATE。
 get_loaded_extensions添加了可选的 zend_extensions 参数。
 ldap_first_attributeThe ber_identifier was removed. This is now handled automatically by PHP.
 ldap_next_attributeThe ber_identifier was removed. This is now handled automatically by PHP.
 parse_ini_file由数字组成的键名和小节名会被 PHP 当作整数来处理,因此以 0 开头的数字会被当作八进制而以 0x 开头的会被当作十六进制。
 stream_wrapper_register添加 flags 参数.
5.2.3getimagesizeRead errors generated by this function downgraded to E_NOTICE from E_WARNING.
 htmlentities增加参数 double_encode。
 htmlspecialchars增加参数 double_encode。
 json_decodeThe nesting limit was increased from 20 to 128
 XMLWriter::writeElementThe content parameter became optional.
 XMLWriter::writeElementNsThe content parameter became optional.
 PDOStatement::getColumnMetatable 字段
5.2.2 - 5.2.6substrIf the start parameter indicates the position of a negative truncation or beyond, false is returned. Other versions get the string from start.
5.2.2DOMDocument::registerNodeClassPrior to 5.2.2, a previously registered extendedclass had to be unregistered before being able to register a new class extending the same baseclass.
 date_sun_infoThe order of latitude and longitude has been swapped.
 ftp_ssl_connect以前版本中,如果无法使用 SSL 连接,将会返回一个非 SSL 的连接, 在 5.2.2 版本中修改为返回 FALSE
 phpinfo增加了“已加载的配置文件”信息,之前只存在“配置文件路径(php.ini)"。
 preg_match命名子组可以接受(?<name>), (?'name') 以及(?P<name>)语法。之前版本仅接受(?P<name>)语法。
 preg_match_all子命名分组语法可以接受(?<name>),(?'name')以及 (?P<name>)了。 之前版本仅接受(?P<name>)方式。
 proc_terminate之前的版本被用来销毁进程 resource。
 token_get_allLine numbers are returned in element 2
5.2.1json_decodeAdded support for JSON decoding of basic types.
 memory_get_peak_usage使用此函数无需在编译时加上 --enable-memory-limit 选项。
 memory_get_usage不需要在编译时使用 --enable-memory-limit 选项就能够使用这个函数。
 mt_srandThe 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为 other_options 参数增加 bypass_shell 选项。
5.2.0base64_decode增加了 strict 。
 curl_multi_info_readmsgs_in_queue被加入。
 imagettftextIt is now possible to specify an hexadecimal entity in text.
 mb_strrpos增加了可选参数 offset。
 memory_get_peak_usage添加参数 real_usage。
 memory_get_usage增加了参数 real_usage。
 openssl_verify添加了 signature_alg 参数。
 pathinfo添加了常量 PATHINFO_FILENAME。
 session_get_cookie_params在返回数组中加入 “httponly”。
 session_set_cookie_params加入 httponly 参数。
 setcookie添加 httponly 参数。
 setrawcookie增加了 httponly 参数。
 snmp_set_oid_numeric_printSince PHP 5.2.0.
 PDOStatement::executeinput_parameters 中的键名必须和 SQL 中声明的相匹配。PHP 5.2.0 之前默认忽略。
 SimpleXMLElement::childrenThe optional parameter is_prefix was added.
 SimpleXMLElement::__constructAdded the ns and is_prefix parameters.
 SoapServer::SoapServerAdded the typemap option.
 XMLReader::openencoding and options were added.
 XMLReader::XMLencoding and options were added.
5.1.3curl_getinfo引入CURLINFO_HEADER_OUT.
 get_headers自 PHP 5.1.3 起本函数使用默认的流上下文,其可以用 stream_context_get_default 函数设定和修改。
 http_build_query方括号也会被转义。
 mb_get_info实体 "mail_charset"、"mail_header_encoding" 和 "mail_body_encoding" 开始有效。
 SoapClient::__doRequestThe one_way parameter was added.
 XMLReader::getAttributeReturn NULL if no attribute found. Previously, returned an empty string.
5.1.2date_default_timezone_set本版本开始验证 timezone_identifier 参数。
 header这个函数现在可以一次性阻止多个报文信息的发送,从而作为对报文信息注入攻击的一种防护。
 http_build_query加入了参数 arg_separator。
 parse_url增加了参数 component。
 SimpleXMLElement::__constructAdded the options and data_is_url parameters.
5.1.1dateformat 参数标准的可用日期/时间格式常量见: 常量
5.1.0DOMDocument::saveAdded the options parameter
 DOMDocument::saveXMLAdded the options parameter
 ctype_digit在 PHP 5.1.0 之前,当 text 是一个空字符串的时候,该函数将返回 TRUE 。
 curl_setopt引入 CURLOPT_AUTOREFERER, CURLOPT_BINARYTRANSFER, CURLOPT_FTPSSLAUTH, CURLOPT_PROXYAUTH, and CURLOPT_TIMECONDITION.
 date时间戳的有效取值范围为 GMT 时间的 1901 年 12 月 13 日至 GMT 时间的 2038 年 1 月 19 日。 (32 位有符号整数的取值范围)。 但是,在 PHP 5.1.0 之前的版本,在某些系统(例如 Windows)上有效取值范围为 1970 年 1 月 1 日至 2038 年 1 月 19 日。
 date现在发布 E_STRICT 和 E_NOTICE 时区错误。
 date_sunrise现在发布 E_STRICT 和 E_NOTICE 时区错误。
 date_sunset现在发布 E_STRICT 和 E_NOTICE 时区错误。
 explode支持负数的 limit
 file_get_contentsAdded the offset and maxlen parameters.
 file_put_contents添加了对 LOCK_EX 的支持和 data 参数处理 stream 资源的功能。
 gettimeofday增加了参数 return_float。
 globGLOB_ERR was added
 imagerotate新增: ignore_transparent 。
 intval当传入的 var 是 object,将会抛出 E_NOTICE 并返回 1。
 localtime现在发布 E_STRICT 和 E_NOTICE 时区错误。
 md5_file函数改用流 API。这意味着能够配合封装器使用该函数,比如 md5_file('http://example.com/..')。
 mktimeWhen called with no arguments, mktime throws E_STRICT notice. Use the time function instead.
 mktime现在发布 E_STRICT 和 E_NOTICE 时区错误。
 mktimeis_dst 参数被废弃。出错时函数返回 FALSE 而不再是 -1。修正了本函数可以接受年月日参数全为零。
 mssql_connectnew_link参数加入
 openssl_pkcs7_verify添加 content 参数。
 preg_replace增加参数count.
 preg_replace_callback增加了参数count。
 session_regenerate_id新加 delete_old_session 参数。
 sha1_file改变函数以使用流 API。这意味着可以使用包装器,比如 sha1_file('http://example.com/..')。
 str_word_count新增 charlist 参数。
 stream_copy_to_streamAdded the offset parameter
 stream_filter_appendPrior to PHP 5.1.0, this function returns TRUE on success 或者在失败时返回 FALSE.
 stream_filter_prependPrior to PHP 5.1.0, this function returns TRUE on success 或者在失败时返回 FALSE.
 stream_get_contents增加参数 offset 。
 strftime现在发布 E_STRICT 和 E_NOTICE 时区错误。
 strtotime现在发布 E_STRICT 和 E_NOTICE 时区错误。
 strtotime失败时返回 FALSE,不再是 -1。
 substr_compare允许使用负数的 offset 参数。
 substr_count新增 offset 和 length 参数。
 XSLTProcessor::registerPHPFunctionsThe restrict parameter was added.
5.0.5php_check_syntax函数从PHP中移除。
5.0.4msql_fetch_arrayA bug was fixed when retrieving data from columns containing NULL values. Such columns were not placed into the resulting array.
 msql_fetch_objectA bug was fixed when retrieving data from columns containing NULL values. Such columns were not placed into the resulting array.
 msql_fetch_rowA bug was fixed when retrieving data from columns containing NULL values. Such columns were not placed into the resulting array.
5.0.3get_class_varsget_class_vars will only return the properties that can be accessed from the current scope.
 is_subclass_ofYou may also specify the object parameter as a string (the name of the class)
 php_check_syntaxphp_check_syntax之后调用 exit 会导致一个段错误。
5.0.2array_slice增加了可选参数 preserve_keys 。
 class_exists不再为已定义的 interface 返回 TRUE。请使用 interface_exists。
 get_class_varsCalling 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添加了 SORT_LOCALE_STRING。
 strtotime在 PHP 5 中到 5.0.2 之前,"now" 和其它相对时间从今天午夜起错误计算了。这和正确从当前时间起计算的其它版本不同。
5.0.1get_class_varsCalling get_class_vars will expose all properties, as when converting an object to a class.
 php_check_syntaxerror_message 通过引用传递
5.0.0apache_get_modules可用于Apache 1或PHP Apache 2 filter API。 在此之前, 只可用于 Apache 2 handler API。
 apache_get_version可用于 Apache 2 filter API.
 checkdnsrr增加了AAAA的记录类型。
 curl_setopt引入 CURLOPT_FTP_USE_EPRT, CURLOPT_NOSIGNAL, CURLOPT_UNRESTRICTED_AUTH, CURLOPT_BUFFERSIZE, CURLOPT_HTTPAUTH, CURLOPT_PROXYPORT, CURLOPT_PROXYTYPE, CURLOPT_SSLCERTTYPE, and CURLOPT_HTTP200ALIASES.
 dirnamedirname 的操作从 PHP 5.0.0 版开始是二进制安全的。
 fgetss参数 length 从 此开始可选。
 file增加了参数 context
 filePrior to PHP 5.0.0 the flags parameter only covered include_path and was enabled with 1
 file_get_contentsAdded context support.
 file_put_contentsAdded context support
 is_aThis function became deprecated in favour of the instanceof operator. Calling this function will result in an E_STRICT warning.
 is_executableis_executable 开始可用以于 Windows。
 jdtojewish增加了参数 fl。
 mkdir添加 recursive 参数。
 mkdirmkdir 也可用于某些 URL 封装协议。参见 的列表看看 mkdir 支持哪些 URL 封装协议。
 mysql_fetch_objectAdded the ability to return as a different object.
 opendirpath 支持 ftp:// URL wrapper
 parse_ini_file该函数也开始处理选项值内的新行。
 realpath在此之前的版本中,如果 path 传入了空或者 NULL,将导致 realpath 返回脚本当前的目录。
 renamerename 也可用于某些 URL 封装协议。参见 的列表看看 rename 支持哪些 URL 封装协议。
 rmdir自 PHP 5.0.0 起 rmdir 也可用于某些 URL 封装协议。参见 的列表看看 rmdir 支持哪些 URL 封装协议。
 socket_create增加 AF_INET6 支持。
 strip_tagsstrip_tags 变为二进制安全的。
 strrpos参数 needle 可以是一个多字符的字符串。
 strrpos引入 offset 参数。
 strtotimeMicroseconds began to be allowed, but they are ignored.
 unlink自 PHP 5.0.0 起 unlink 也可以用于某些 URL 封装协议。参考 中的列表看哪些封装协议支持 unlink。

附录
PHP Manual