mirror of
https://github.com/php/php-src.git
synced 2024-09-28 13:26:11 +00:00
b187c35f23
* pull-request/54: Allow arbitrary expressions for empty() This change is as per RFC https://wiki.php.net/rfc/empty_isset_exprs. The change allows passing the result of function calls and other expressions to the empty() language construct. This is accomplished by simply rewriting empty(expr) to !expr. The change does not affect the suppression of errors when using empty() on variables. empty($undefinedVar) will continue not to throw errors. When an expression is used inside empty() on the other hand, errors will not be suppressed. Thus empty($undefinedVar + $somethingElse) *will* throw a notice. The change also does not make empty() into a real function, so using 'empty' as a callback is still not possible. In addition to the empty() changes the commit adds nicer error messages when isset() is used on function call results or other expressions.
182 lines
5.2 KiB
Plaintext
Executable File
182 lines
5.2 KiB
Plaintext
Executable File
$Id$
|
|
|
|
PHP X.Y UPGRADE NOTES
|
|
|
|
1. Backward Incompatible Changes
|
|
2. New Features
|
|
2. Changes in SAPI modules
|
|
3. Deprecated Functionality
|
|
4. Changed Functions
|
|
5. New Functions
|
|
6. New Classes and Interfaces
|
|
7. Removed Extensions
|
|
8. Other Changes to Extensions
|
|
9. New Global Constants
|
|
10. Changes to INI File Handling
|
|
11. Other Changes
|
|
|
|
|
|
========================================
|
|
1. Backward Incompatible Changes
|
|
========================================
|
|
|
|
- Drop Windows XP and 2003 support. (Pierre)
|
|
|
|
========================================
|
|
2. New Features
|
|
========================================
|
|
|
|
- Support constant array/string dereferencing. (Laruence)
|
|
(https://wiki.php.net/rfc/constdereference)
|
|
- Add support for using empty() on the result of function calls and
|
|
other expressions. Thus it is now possible to write empty(getArray()),
|
|
for example. (https://wiki.php.net/rfc/empty_isset_exprs)
|
|
|
|
========================================
|
|
2. Changes in SAPI modules
|
|
========================================
|
|
|
|
|
|
========================================
|
|
3. Deprecated Functionality
|
|
========================================
|
|
|
|
- The preg_replace /e modifier is now deprecated. Use
|
|
preg_replace_callback instead.
|
|
(https://wiki.php.net/rfc/remove_preg_replace_eval_modifier)
|
|
|
|
========================================
|
|
4. Changed Functions
|
|
========================================
|
|
|
|
- pack()/unpack() had the following changes, which bring it more in line
|
|
with Perl's behavior:
|
|
- Implemented format character "Z": NUL-padded string
|
|
- "a" now does not remove trailing NUL characters on unpack() anymore
|
|
- "A" will now strip all trailing ASCII whitespace on unpack() (it used to
|
|
remove only trailing spaces).
|
|
- MessageFormatter::format() and related functions now accepted named arguments
|
|
and mixed numeric/named arguments in ICU 4.8+.
|
|
- MessageFormatter::format() and related functions now don't error out when
|
|
an insufficient argument count is provided. Instead, the placeholders will
|
|
remain unsubstituted.
|
|
- MessageFormatter::parse() and MessageFormat::format() (and their static
|
|
equivalents) now don't throw away better than second precision in the
|
|
arguments.
|
|
|
|
========================================
|
|
5. New Functions
|
|
========================================
|
|
|
|
- Intl:
|
|
- intlcal_create_instance()
|
|
- intlcal_get_keyword_values_for_locale()
|
|
- intlcal_get_now()
|
|
- intlcal_get_available_locales()
|
|
- intlcal_get()
|
|
- intlcal_get_time()
|
|
- intlcal_set_time()
|
|
- intlcal_add()
|
|
- intlcal_set_time_zone()
|
|
- intlcal_after()
|
|
- intlcal_before()
|
|
- intlcal_set()
|
|
- intlcal_roll()
|
|
- intlcal_clear()
|
|
- intlcal_field_difference()
|
|
- intlcal_get_actual_maximum()
|
|
- intlcal_get_actual_minimum()
|
|
- intlcal_get_day_of_week_type()
|
|
- intlcal_get_first_day_of_week()
|
|
- intlcal_get_greatest_minimum()
|
|
- intlcal_get_least_maximum()
|
|
- intlcal_get_locale()
|
|
- intlcal_get_maximum()
|
|
- intlcal_get_minimal_days_in_first_week()
|
|
- intlcal_get_minimum()
|
|
- intlcal_get_time_zone()
|
|
- intlcal_get_type()
|
|
- intlcal_get_weekend_transition()
|
|
- intlcal_in_daylight_time()
|
|
- intlcal_is_equivalent_to()
|
|
- intlcal_is_lenient()
|
|
- intlcal_is_set()
|
|
- intlcal_is_weekend()
|
|
- intlcal_set_first_day_of_week()
|
|
- intlcal_set_lenient()
|
|
- intlcal_equals()
|
|
- intlcal_get_repeated_wall_time_option()
|
|
- intlcal_get_skipped_wall_time_option()
|
|
- intlcal_set_repeated_wall_time_option()
|
|
- intlcal_set_skipped_wall_time_option()
|
|
- intlcal_from_date_time()
|
|
- intlcal_to_date_time()
|
|
- intlcal_get_error_code()
|
|
- intlcal_get_error_message()
|
|
- intlgregcal_create_instance()
|
|
- intlgregcal_set_gregorian_change()
|
|
- intlgregcal_get_gregorian_change()
|
|
- intlgregcal_is_leap_year()
|
|
- intltz_create_time_zone()
|
|
- intltz_create_default()
|
|
- intltz_get_id()
|
|
- intltz_get_gmt()
|
|
- intltz_get_unknown()
|
|
- intltz_create_enumeration()
|
|
- intltz_count_equivalent_ids()
|
|
- intltz_create_time_zone_id_enumeration()
|
|
- intltz_get_canonical_id()
|
|
- intltz_get_region()
|
|
- intltz_get_tz_data_version()
|
|
- intltz_get_equivalent_id()
|
|
- intltz_use_daylight_time()
|
|
- intltz_get_offset()
|
|
- intltz_get_raw_offset()
|
|
- intltz_has_same_rules()
|
|
- intltz_get_display_name()
|
|
- intltz_get_dst_savings()
|
|
- intltz_from_date_time_zone()
|
|
- intltz_to_date_time_zone()
|
|
- intltz_get_error_code()
|
|
- intltz_get_error_message()
|
|
|
|
- SPL:
|
|
- SplFixedArray::__wakeup()
|
|
|
|
========================================
|
|
6. New Classes and Interfaces
|
|
========================================
|
|
|
|
- Intl:
|
|
- IntlCalendar
|
|
- IntlGregorianCalendar
|
|
- IntlTimeZone
|
|
|
|
========================================
|
|
7. Removed Extensions
|
|
========================================
|
|
|
|
|
|
========================================
|
|
8. Other Changes to Extensions
|
|
========================================
|
|
|
|
- Intl:
|
|
- This extension now requires ICU 4.0+.
|
|
- Added intl.use_exceptions INI directive, which controls what happens when
|
|
global errors are set together with intl.error_level.
|
|
|
|
========================================
|
|
9. New Global Constants
|
|
========================================
|
|
|
|
|
|
========================================
|
|
10. Changes to INI File Handling
|
|
========================================
|
|
|
|
|
|
========================================
|
|
11. Other Changes
|
|
========================================
|