summaryrefslogtreecommitdiff
path: root/UPGRADING
blob: 9d5d8e72284ee92efcfff3c76818368e052fb04f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
$Id$

PHP X.Y UPGRADE NOTES

1. Backward Incompatible Changes
2. New Features
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
12. Windows Support
13. Other Changes


========================================
1. Backward Incompatible Changes
========================================

- Core
  . Added null coalesce operator (??).
    (RFC: https://wiki.php.net/rfc/isset_ternary)
  . 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)
  . 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)

- DBA
  . dba_delete() now returns false if the key was not found for the inifile
    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
========================================

- Core
  . Support for strings with length >= 2^31 bytes in 64 bit builds
  . Closure::call() method added

- Standard
  . intdiv() function for integer division added.

========================================
3. Changes in SAPI modules
========================================

- FPM
  . Fixed bug #65933 (Cannot specify config lines longer than 1024 bytes).
  . Listen = port now listen on all addresses (IPv6 and IPv4-mapped).

========================================
4. Deprecated Functionality
========================================


========================================
5. Changed Functions
========================================

- parse_ini_file():
- parse_ini_string():
  Added scanner mode INI_SCANNER_TYPED to yield typed .ini values.
- 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"]);


========================================
6. New Functions
========================================


========================================
7. New Classes and Interfaces
========================================


========================================
8. Removed Extensions
========================================


========================================
9. Other Changes to Extensions
========================================


========================================
10. New Global Constants
========================================

- Core
  . PHP_INT_MIN added.

========================================
11. Changes to INI File Handling
========================================

- Core
  . Removed asp_tags ini directive. Trying to enable it will result in a fatal
    error.

========================================
12. Windows Support
========================================

- Core
  . Support for native 64 bit integers in 64 bit builds
  . Support for large files in 64 bit builds

========================================
13. Other Changes
========================================

- Core
  . Instead of being undefined and platform-dependent, NaN and Infinity will
    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

- Standard
  . call_user_method() and call_user_method_array() no longer exists.