appendices/migration80/incompatible.xml
61374bbe228e8e9c55a24aba59a1e2bb2a871148
...
...
@@ -73,6 +73,11 @@
73
73
</listitem>
74
74
<listitem>
75
75
<para>
76
+
<literal>mixed</literal> is now a reserved word, so it cannot be used to name a class, interface or trait, and is also prohibited from being used in namespaces.
77
+
</para>
78
+
</listitem>
79
+
<listitem>
80
+
<para>
76
81
Assertion failures now throw by default. If the old behavior is desired,
77
82
<code>assert.exception=0</code> can be set in the INI settings.
78
83
</para>
...
...
@@ -200,7 +205,7 @@
200
205
// Replace
201
206
function my_error_handler($err_no, $err_msg, $filename, $linenum) {
202
207
if (error_reporting() == 0) {
203
-
return false; // Silenced
208
+
return false;
204
209
}
205
210
// ...
206
211
}
...
...
@@ -208,7 +213,7 @@ function my_error_handler($err_no, $err_msg, $filename, $linenum) {
208
213
// With
209
214
function my_error_handler($err_no, $err_msg, $filename, $linenum) {
210
215
if (!(error_reporting() & $err_no)) {
211
-
return false; // Silenced
216
+
return false;
212
217
}
213
218
// ...
214
219
}
...
...
@@ -301,6 +306,14 @@ function test(int $arg = null) {}
301
306
Attempting to access unqualified constants which are undefined.
302
307
Previously, unqualified constant accesses resulted in a warning and were interpreted as strings.
303
308
</member>
309
+
<member>
310
+
Passing the wrong number of arguments to a non-variadic built-in
311
+
function will throw an <classname>ArgumentCountError</classname>.
312
+
</member>
313
+
<member>
314
+
Passing invalid countable types to <function>count</function> will throw
315
+
a <classname>TypeError</classname>.
316
+
</member>
304
317
</simplelist>
305
318
</para>
306
319
<para>
...
...
@@ -685,13 +698,13 @@ $array["key"];
685
698
</para>
686
699
</listitem>
687
700
<listitem>
688
-
<para>
689
-
<function>shmop_open</function> will now return a <classname>Shmop</classname> object rather than
690
-
a &resource;. The <function>shmop_close</function> function no longer has an effect, and is
691
-
deprecated; instead the <classname>Shmop</classname> instance is automatically destroyed if it is
692
-
no longer referenced.
693
-
</para>
694
-
</listitem>
701
+
<para>
702
+
<function>shmop_open</function> will now return a <classname>Shmop</classname> object rather than
703
+
a &resource;. The <function>shmop_close</function> function no longer has an effect, and is
704
+
deprecated; instead the <classname>Shmop</classname> instance is automatically destroyed if it is
705
+
no longer referenced.
706
+
</para>
707
+
</listitem>
695
708
<listitem>
696
709
<para>
697
710
<function>socket_create</function>, <function>socket_create_listen</function>,
...
...
@@ -791,15 +804,34 @@ $array["key"];
791
804
</para>
792
805
<para>
793
806
<simplelist>
794
-
<member>DOMNameList</member>
795
-
<member>DomImplementationList</member>
796
-
<member>DOMConfiguration</member>
797
-
<member>DomError</member>
798
-
<member>DomErrorHandler</member>
799
-
<member>DOMImplementationSource</member>
800
-
<member>DOMLocator</member>
801
-
<member>DOMUserDataHandler</member>
802
-
<member>DOMTypeInfo</member>
807
+
<member><classname>DOMNameList</classname></member>
808
+
<member><classname>DomImplementationList</classname></member>
809
+
<member><classname>DOMConfiguration</classname></member>
810
+
<member><classname>DomError</classname></member>
811
+
<member><classname>DomErrorHandler</classname></member>
812
+
<member><classname>DOMImplementationSource</classname></member>
813
+
<member><classname>DOMLocator</classname></member>
814
+
<member><classname>DOMUserDataHandler</classname></member>
815
+
<member><classname>DOMTypeInfo</classname></member>
816
+
<member><classname>DOMStringExtend</classname></member>
817
+
</simplelist>
818
+
</para>
819
+
<para>
820
+
Unimplemented methods from the DOM extension that had no behavior have been removed:
821
+
</para>
822
+
<para>
823
+
<simplelist>
824
+
<member><methodname>DOMNamedNodeMap::setNamedItem</methodname></member>
825
+
<member><methodname>DOMNamedNodeMap::removeNamedItem</methodname></member>
826
+
<member><methodname>DOMNamedNodeMap::setNamedItemNS</methodname></member>
827
+
<member><methodname>DOMNamedNodeMap::removeNamedItemNS</methodname></member>
828
+
<member><methodname>DOMText::replaceWholeText</methodname></member>
829
+
<member><methodname>DOMNode::compareDocumentPosition</methodname></member>
830
+
<member><methodname>DOMNode::isEqualNode</methodname></member>
831
+
<member><methodname>DOMNode::getFeature</methodname></member>
832
+
<member><methodname>DOMNode::setUserData</methodname></member>
833
+
<member><methodname>DOMNode::getUserData</methodname></member>
834
+
<member><methodname>DOMDocument::renameNode</methodname></member>
803
835
</simplelist>
804
836
</para>
805
837
</sect2>
...
...
@@ -854,7 +886,7 @@ $array["key"];
854
886
<itemizedlist>
855
887
<listitem>
856
888
<para>
857
-
The deprecated functions <function>image2wbmp</function> has been removed.
889
+
The deprecated function <function>image2wbmp</function> has been removed.
858
890
<!-- RFC: https://wiki.php.net/rfc/image2wbmp -->
859
891
</para>
860
892
</listitem>
...
...
@@ -927,9 +959,9 @@ $array["key"];
927
959
</para>
928
960
</listitem>
929
961
<listitem>
930
-
<para>
931
-
The deprecated <constant>Normalizer::NONE</constant> constant has been removed.
932
-
</para>
962
+
<para>
963
+
The deprecated <constant>Normalizer::NONE</constant> constant has been removed.
964
+
</para>
933
965
</listitem>
934
966
</itemizedlist>
935
967
</sect2>
...
...
@@ -939,18 +971,18 @@ $array["key"];
939
971

940
972
<itemizedlist>
941
973
<listitem>
942
-
<para>
943
-
The deprecated functions <function>ldap_sort</function>,
944
-
<function>ldap_control_paged_result</function> and
945
-
<function>ldap_control_paged_result_response</function> have been removed.
946
-
</para>
947
-
</listitem>
948
-
<listitem>
949
-
<para>
950
-
The interface of <function>ldap_set_rebind_proc</function> has changed; the
951
-
<parameter>callback</parameter> parameter does not accept empty strings anymore; &null; should be
952
-
used instead.
953
-
</para>
974
+
<para>
975
+
The deprecated functions <function>ldap_sort</function>,
976
+
<function>ldap_control_paged_result</function> and
977
+
<function>ldap_control_paged_result_response</function> have been removed.
978
+
</para>
979
+
</listitem>
980
+
<listitem>
981
+
<para>
982
+
The interface of <function>ldap_set_rebind_proc</function> has changed; the
983
+
<parameter>callback</parameter> parameter does not accept empty strings anymore; &null; should be
984
+
used instead.
985
+
</para>
954
986
</listitem>
955
987
</itemizedlist>
956
988
</sect2>
...
...
@@ -1296,7 +1328,7 @@ $array["key"];
1296
1328
<listitem>
1297
1329
<para>
1298
1330
<methodname>SplFileObject::seek</methodname> now always seeks to the beginning of the line.
1299
-
Previously, positions <literal>=1</literal> sought to the beginning of the next line.
1331
+
Previously, positions <literal>&gt;=1</literal> sought to the beginning of the next line.
1300
1332
</para>
1301
1333
</listitem>
1302
1334
<listitem>
...
...
@@ -1590,18 +1622,18 @@ echo file_get_contents('http://example.org', false, $ctx);
1590
1622
<itemizedlist>
1591
1623
<listitem>
1592
1624
<para>
1593
-
<literal>T_COMMENT</literal> tokens will no longer include a trailing newline. The newline will
1594
-
instead be part of a following <literal>T_WHITESPACE</literal> token. It should be noted that
1595
-
<literal>T_COMMENT</literal> is not always followed by whitespace, it may also be followed by
1596
-
<literal>T_CLOSE_TAG</literal> or end-of-file.
1625
+
<constant>T_COMMENT</constant> tokens will no longer include a trailing newline. The newline will
1626
+
instead be part of a following <constant>T_WHITESPACE</constant> token. It should be noted that
1627
+
<constant>T_COMMENT</constant> is not always followed by whitespace, it may also be followed by
1628
+
<constant>T_CLOSE_TAG</constant> or end-of-file.
1597
1629
</para>
1598
1630
</listitem>
1599
1631
<listitem>
1600
1632
<para>
1601
-
Namespaced names are now represented using the <literal>T_NAME_QUALIFIED</literal>
1602
-
(<code>Foo\Bar</code>), <literal>T_NAME_FULLY_QUALIFIED</literal> (<code>\Foo\Bar</code>) and
1603
-
<literal>T_NAME_RELATIVE</literal> (<code>namespace\Foo\Bar</code>) tokens.
1604
-
<literal>T_NS_SEPARATOR</literal> is only used for standalone namespace separators, and only
1633
+
Namespaced names are now represented using the <constant>T_NAME_QUALIFIED</constant>
1634
+
(<code>Foo\Bar</code>), <constant>T_NAME_FULLY_QUALIFIED</constant> (<code>\Foo\Bar</code>) and
1635
+
<constant>T_NAME_RELATIVE</constant> (<code>namespace\Foo\Bar</code>) tokens.
1636
+
<constant>T_NS_SEPARATOR</constant> is only used for standalone namespace separators, and only
1605
1637
syntactially valid in conjunction with group use declarations.
1606
1638
<!-- RFC: https://wiki.php.net/rfc/namespaced_names_as_token -->
1607
1639
</para>
1608
1640