php-src/UPGRADING

157 lines
5.2 KiB
Plaintext
Raw Normal View History

2005-11-23 15:01:54 +00:00
$Id$
PHP X.Y UPGRADE NOTES
1. Backward Incompatible Changes
2. New Features
2014-05-01 10:27:38 +00:00
3. Changes in SAPI modules
4. Deprecated Functionality
5. Changed Functions
6. New Functions
7. New Classes and Interfaces
8. Removed Extensions
9. Other Changes to Extensions
10. New Global Constants
11. Changes to INI File Handling
2014-08-22 11:35:07 +00:00
12. Windows Support
13. Other Changes
2010-03-24 16:23:50 +00:00
2010-03-24 16:23:50 +00:00
========================================
1. Backward Incompatible Changes
2010-03-24 16:23:50 +00:00
========================================
2009-06-24 21:16:53 +00:00
2014-09-20 23:47:25 +00:00
- Core
. list() now always supports ArrayAccess and never supports strings.
Previously both were accepted in some situations and not in others.
(RFC: https://wiki.php.net/rfc/fix_list_behavior_inconsistency)
2014-09-20 23:47:25 +00:00
. Bitwise shifts by negative numbers of bits are disallowed (throws E_WARNING
and gives FALSE, like a division by zero).
. Left bitwise shifts by a number of bits beyond the bit width of an integer
will always result in 0, even on CPUs which wrap around.
. Right bitwise shifts by a number of bits beyond the bit width of an integer
will always result in 0 or -1 (depending on sign), even on CPUs which wrap
around.
. Removed ASP (<%) and script (<script language=php>) tags.
(RFC: https://wiki.php.net/rfc/remove_alternative_php_tags)
2014-12-15 07:49:24 +00:00
. call_user_method() and call_user_method_array() no longer exists.
2014-12-15 19:31:53 +00:00
. PHP 7 doesn't keep original values of arguments passed to user functions,
so func_get_arg() and func_get_args() will return current value of argument
instead of the actually passed. The following code is going to be affected:
function foo($x) { $x = 2; return func_get_arg(0);} var_dump(foo(1));
It will now produce 2, not 1.
. Function parameters with duplicate name are not allowed anymore. Definitions
like “function foo($x,$x) {}” will lead to compile time error.
2014-12-16 19:00:51 +00:00
. Indirect variable, property and method references are now interpreted with
left-to-right semantics. See details in:
https://wiki.php.net/rfc/uniform_variable_syntax#semantic_differences_in_existing_syntax
. The global keyword now only accepts simple variables. See details in:
https://wiki.php.net/rfc/uniform_variable_syntax#global_keyword_takes_only_simple_variables
. Added \u{xxxxxx} Unicode Codepoint Escape Syntax for double-quoted strings
and heredocs. While \u does not not become a syntax error, so existing
strings like "\u202e" will be unchanged, \u{ followed by an invalid sequence
will now error.
2014-09-20 23:47:25 +00:00
2013-12-05 10:30:52 +00:00
- DBA
. dba_delete() now returns false if the key was not found for the inifile
2013-12-05 10:30:52 +00:00
handler, too.
- GMP
. Requires libgmp version 4.2 or newer now.
. gmp_setbit() and gmp_clrbit() now return FALSE for negative indices, making
them consistent with other GMP functions.
========================================
2. New Features
========================================
2014-08-22 11:35:07 +00:00
- Core
2014-12-15 07:49:24 +00:00
. Added null coalesce operator (??).
(RFC: https://wiki.php.net/rfc/isset_ternary)
2014-08-22 11:35:07 +00:00
. Support for strings with length >= 2^31 bytes in 64 bit builds
2014-10-25 16:05:52 +00:00
. Closure::call() method added
2014-08-22 11:35:07 +00:00
2014-08-06 18:56:32 +00:00
- Standard
. intdiv() function for integer division added.
2013-10-08 14:20:07 +00:00
========================================
2014-05-01 10:27:38 +00:00
3. Changes in SAPI modules
========================================
2014-08-19 23:38:33 +00:00
- FPM
. Fixed bug #65933 (Cannot specify config lines longer than 1024 bytes).
. Listen = port now listen on all addresses (IPv6 and IPv4-mapped).
========================================
2014-05-01 10:27:38 +00:00
4. Deprecated Functionality
========================================
========================================
2014-05-01 10:27:38 +00:00
5. Changed Functions
========================================
2009-06-23 19:40:31 +00:00
2014-09-01 14:30:09 +00:00
- parse_ini_file():
- parse_ini_string():
Added scanner mode INI_SCANNER_TYPED to yield typed .ini values.
2014-11-23 06:23:55 +00:00
- unserialize():
Added second parameter for unserialize function
(RFC: https://wiki.php.net/rfc/secure_unserialize) allowing to specify
acceptable classes:
unserialize($foo, ["allowed_classes" => ["MyClass", "MyClass2"]);
2014-09-01 14:30:09 +00:00
========================================
2014-05-01 10:27:38 +00:00
6. New Functions
========================================
- GMP
Added gmp_random_seed()
2013-11-04 12:32:45 +00:00
========================================
2014-05-01 10:27:38 +00:00
7. New Classes and Interfaces
========================================
========================================
2014-05-01 10:27:38 +00:00
8. Removed Extensions
========================================
========================================
2014-05-01 10:27:38 +00:00
9. Other Changes to Extensions
========================================
========================================
2014-05-01 10:27:38 +00:00
10. New Global Constants
========================================
2010-03-24 16:23:50 +00:00
2014-08-01 15:28:20 +00:00
- Core
2014-08-06 18:56:32 +00:00
. PHP_INT_MIN added.
2010-03-24 16:23:50 +00:00
========================================
2014-05-01 10:27:38 +00:00
11. Changes to INI File Handling
========================================
- Core
. Removed asp_tags ini directive. Trying to enable it will result in a fatal
error.
2014-08-22 11:35:07 +00:00
========================================
12. Windows Support
========================================
- Core
. Support for native 64 bit integers in 64 bit builds
. Support for large files in 64 bit builds
========================================
2014-08-22 11:35:07 +00:00
13. Other Changes
========================================
2014-09-20 23:47:25 +00:00
- Core
. Instead of being undefined and platform-dependent, NaN and Infinity will
2014-09-20 23:47:25 +00:00
always be zero when casted to integer.
. Calling a method on a non-object no longer raises a fatal error; see
also: https://wiki.php.net/rfc/catchable-call-to-member-of-non-object