PHP 5.5.0 发布了首个 Alpha 测试版本,该版本包含众多改进和 bug 修复,详细列表请看这里。 PHP(PHP:Hypertext Preprocessor)是一种在电脑上执行的脚本语言,主要是用途在于处理动态网页,也包含了命令列执行接口(command line interface),或者产生图形使用者接口(GUI)程式。 PHP 最早由 Rasmus Lerdorf 在1995年发明,现在PHP实质上的标准由PHP Group和开放源代码社群维护。PHP 以 PHP License 作为许可协议,不过因为这个协议限制了PHP名称的使用,所以和开放源代码许可协议GPL不相容。
- General improvements: 6 . Added support for generators. (Nikita Popov) 7 . Add simplified password hashing API 8 (https://wiki.php.net/rfc/password_hash). (Anthony Ferrara) 9 . Add generators and coroutines (https://wiki.php.net/rfc/generators). 10 (Nikita Popov) 11 . Support list in foreach (https://wiki.php.net/rfc/foreachlist). (Laruence) 12 . Implemented 'finally' keyword (https://wiki.php.net/rfc/finally). (Laruence) 13 . Drop Windows XP and 2003 support. (Pierre) 14 . Improve set_exception_handler while doing reset.(Laruence) 15 . Support constant array/string dereferencing. (Laruence) 16 . Add support for using empty() on the result of function calls and 17 other expressions (https://wiki.php.net/rfc/empty_isset_exprs). 18 (Nikita Popov) 19 . Remove php_logo_guid(), php_egg_logo_guid(), php_real_logo_guid(), 20 zend_logo_guid(). (Adnrew Faulds) 22 - Calendar: 23 . Fixed bug #54254 (cal_from_jd returns month = 6 when there is only one Adar) 24 (Stas, Eitan Mosenkis) 26 - Core: 27 . Added boolval(). (Jille Timmermans) 28 . Added "Z" option to pack/unpack. (Gustavo) 29 . Implemented FR #60738 (Allow 'set_error_handler' to handle NULL). 30 (Laruence, Nikita Popov) 31 . Added optional second argument for assert() to specify custom message. Patch 32 by Lonny Kapelushnik (lonny@lonnylot.com). (Lars) 33 . Fixed bug #18556 (Engine uses locale rules to handle class names). (Stas) 34 . Fixed bug #61681 (Malformed grammar). (Nikita Popov, Etienne, Laruence) 35 . Fixed bug #61038 (unpack("a5", "str\0\0") does not work as expected). 36 (srgoogleguy, Gustavo) 37 . Return previous handler when passing NULL to set_error_handler and 38 set_exception_handler. (Nikita Popov) 40 - cURL: 41 . Added support for CURLOPT_FTP_RESPONSE_TIMEOUT, CURLOPT_APPEND, 42 CURLOPT_DIRLISTONLY, CURLOPT_NEW_DIRECTORY_PERMS, CURLOPT_NEW_FILE_PERMS, 43 CURLOPT_NETRC_FILE, CURLOPT_PREQUOTE, CURLOPT_KRBLEVEL, CURLOPT_MAXFILESIZE, 44 CURLOPT_FTP_ACCOUNT, CURLOPT_COOKIELIST, CURLOPT_IGNORE_CONTENT_LENGTH, 45 CURLOPT_CONNECT_ONLY, CURLOPT_LOCALPORT, CURLOPT_LOCALPORTRANGE, 46 CURLOPT_FTP_ALTERNATIVE_TO_USER, CURLOPT_SSL_SESSIONID_CACHE, 47 CURLOPT_FTP_SSL_CCC, CURLOPT_HTTP_CONTENT_DECODING, 48 CURLOPT_HTTP_TRANSFER_DECODING, CURLOPT_PROXY_TRANSFER_MODE, 49 CURLOPT_ADDRESS_SCOPE, CURLOPT_CRLFILE, CURLOPT_ISSUERCERT, 50 CURLOPT_USERNAME, CURLOPT_PASSWORD, CURLOPT_PROXYUSERNAME, 51 CURLOPT_PROXYPASSWORD, CURLOPT_NOPROXY, CURLOPT_SOCKS5_GSSAPI_NEC, 52 CURLOPT_SOCKS5_GSSAPI_SERVICE, CURLOPT_TFTP_BLKSIZE, 53 CURLOPT_SSH_KNOWNHOSTS, CURLOPT_FTP_USE_PRET, CURLOPT_MAIL_FROM, 54 CURLOPT_MAIL_RCPT, CURLOPT_RTSP_CLIENT_CSEQ, CURLOPT_RTSP_SERVER_CSEQ, 55 CURLOPT_RTSP_SESSION_ID, CURLOPT_RTSP_STREAM_URI, CURLOPT_RTSP_TRANSPORT, 56 CURLOPT_RTSP_REQUEST, CURLOPT_RESOLVE, CURLOPT_ACCEPT_ENCODING, 57 CURLOPT_TRANSFER_ENCODING, CURLOPT_DNS_SERVERS and CURLOPT_USE_SSL. 58 (Pierrick) 59 . Fixed bug #55635 (CURLOPT_BINARYTRANSFER no longer used. The constant 60 still exists for backward compatibility but is doing nothing). (Pierrick) 61 . Fixed bug #54995 (Missing CURLINFO_RESPONSE_CODE support). (Pierrick) 63 - Datetime 64 . Fixed bug #61642 (modify("+5 weekdays") returns Sunday). 65 (Dmitri Iouchtchenko) 67 - Hash 68 . Added support for PBKDF2 via hash_pbkdf2(). (Anthony Ferrara) 70 - Intl 71 . The intl extension now requires ICU 4.0+. 72 . Added intl.use_exceptions INI directive, which controls what happens when 73 global errors are set together with intl.error_level. (Gustavo) 74 . MessageFormatter::format() and related functions now accepted named 75 arguments and mixed numeric/named arguments in ICU 4.8+. (Gustavo) 76 . MessageFormatter::format() and related functions now don't error out when 77 an insufficient argument count is provided. Instead, the placeholders will 78 remain unsubstituted. (Gustavo) 79 . MessageFormatter::parse() and MessageFormat::format() (and their static 80 equivalents) don't throw away better than second precision in the arguments. 81 (Gustavo) 82 . IntlDateFormatter::__construct and datefmt_create() now accept for the 83 $timezone argument time zone identifiers, IntlTimeZone objects, DateTimeZone 84 objects and NULL. (Gustavo) 85 . IntlDateFormatter::__construct and datefmt_create() no longer accept invalid 86 timezone identifiers or empty strings. (Gustavo) 87 . The default time zone used in IntlDateFormatter::__construct and 88 datefmt_create() (when the corresponding argument is not passed or NULL is 89 passed) is now the one given by date_default_timezone_get(), not the 90 default ICU time zone. (Gustavo) 91 . The time zone passed to the IntlDateFormatter is ignored if it is NULL and 92 if the calendar passed is an IntlCalendar object -- in this case, the 93 IntlCalendar's time zone will be used instead. Otherwise, the time zone 94 specified in the $timezone argument is used instead. This does not affect 95 old code, as IntlCalendar was introduced in this version. (Gustavo) 96 . IntlDateFormatter::__construct and datefmt_create() now accept for the 97 $calendar argument also IntlCalendar objects. (Gustavo) 98 . IntlDateFormatter::getCalendar() and datefmt_get_calendar() return false 99 if the IntlDateFormatter was set up with an IntlCalendar instead of the 100 constants IntlDateFormatter::GREGORIAN/TRADITIONAL. IntlCalendar did not 101 exist before this version. (Gustavo) 102 . IntlDateFormatter::setCalendar() and datefmt_set_calendar() now also accept 103 an IntlCalendar object, in which case its time zone is taken. Passing a 104 constant is still allowed, and still keeps the time zone. (Gustavo) 105 . IntlDateFormatter::setTimeZoneID() and datefmt_set_timezone_id() are 106 deprecated. Use IntlDateFormatter::setTimeZone() or datefmt_set_timezone() 107 instead. (Gustavo) 108 . IntlDateFormatter::format() and datefmt_format() now also accept an 109 IntlCalendar object for formatting. (Gustavo) 110 . Added the classes: IntlCalendar, IntlGregorianCalendar, IntlTimeZone, 111 IntlBreakIterator, IntlRuleBasedBreakIterator and 112 IntlCodePointBreakIterator. (Gustavo) 113 . Added the functions: intlcal_get_keyword_values_for_locale(), 114 intlcal_get_now(), intlcal_get_available_locales(), intlcal_get(), 115 intlcal_get_time(), intlcal_set_time(), intlcal_add(), 116 intlcal_set_time_zone(), intlcal_after(), intlcal_before(), intlcal_set(), 117 intlcal_roll(), intlcal_clear(), intlcal_field_difference(), 118 intlcal_get_actual_maximum(), intlcal_get_actual_minimum(), 119 intlcal_get_day_of_week_type(), intlcal_get_first_day_of_week(), 120 intlcal_get_greatest_minimum(), intlcal_get_least_maximum(), 121 intlcal_get_locale(), intlcal_get_maximum(), 122 intlcal_get_minimal_days_in_first_week(), intlcal_get_minimum(), 123 intlcal_get_time_zone(), intlcal_get_type(), 124 intlcal_get_weekend_transition(), intlcal_in_daylight_time(), 125 intlcal_is_equivalent_to(), intlcal_is_lenient(), intlcal_is_set(), 126 intlcal_is_weekend(), intlcal_set_first_day_of_week(), 127 intlcal_set_lenient(), intlcal_equals(), 128 intlcal_get_repeated_wall_time_option(), 129 intlcal_get_skipped_wall_time_option(), 130 intlcal_set_repeated_wall_time_option(), 131 intlcal_set_skipped_wall_time_option(), intlcal_from_date_time(), 132 intlcal_to_date_time(), intlcal_get_error_code(), 133 intlcal_get_error_message(), intlgregcal_create_instance(), 134 intlgregcal_set_gregorian_change(), intlgregcal_get_gregorian_change() and 135 intlgregcal_is_leap_year(). (Gustavo) 136 . Added the functions: intltz_create_time_zone(), intltz_create_default(), 137 intltz_get_id(), intltz_get_gmt(), intltz_get_unknown(), 138 intltz_create_enumeration(), intltz_count_equivalent_ids(), 139 intltz_create_time_zone_id_enumeration(), intltz_get_canonical_id(), 140 intltz_get_region(), intltz_get_tz_data_version(), 141 intltz_get_equivalent_id(), intltz_use_daylight_time(), intltz_get_offset(), 142 intltz_get_raw_offset(), intltz_has_same_rules(), intltz_get_display_name(), 143 intltz_get_dst_savings(), intltz_from_date_time_zone(), 144 intltz_to_date_time_zone(), intltz_get_error_code(), 145 intltz_get_error_message(). (Gustavo) 146 . Added the methods: IntlDateFormatter::formatObject(), 147 IntlDateFormatter::getCalendarObject(), IntlDateFormatter::getTimeZone(), 148 IntlDateFormatter::setTimeZone(). (Gustavo) 149 . Added the functions: datefmt_format_object(), datefmt_get_calendar_object(), 150 datefmt_get_timezone(), datefmt_set_timezone(), 151 datefmt_get_calendar_object(), intlcal_create_instance(). (Gustavo) 153 - MCrypt 154 . mcrypt_ecb(), mcrypt_cbc(), mcrypt_cfb() and mcrypt_ofb() now throw 155 E_DEPRECATED. (GoogleGuy) 158 . Dropped support for LOAD DATA LOCAL INFILE handlers when using libmysql. 159 Known for stability problems. (Andrey) 160 . Added support for SHA256 authentication available with MySQL 5.6.6+. (Andrey) 162 - PCRE: 163 . Deprecated the /e modifier |
发表回复