appendices/migration80/incompatible.xml
b94d63fc0884d83ba43433ab33cc4810d955bf6d
b94d63fc0884d83ba43433ab33cc4810d955bf6d
...
...
@@ -71,6 +71,11 @@
71
71
<literal>match</literal> is now a reserved keyword.
72
72
</para>
73
73
</listitem>
74
+
<listitem>
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>
74
79
<listitem>
75
80
<para>
76
81
Assertion failures now throw by default. If the old behavior is desired,
...
...
@@ -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>>=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>
...
...
@@ -1613,7 +1645,7 @@ echo file_get_contents('http://example.org', false, $ctx);
1613
1645
<title>XMLReader</title>
1614
1646
1615
1647
<para>
1616
-
<methodname>XMLReader::open</methodname> and <methodname>XMLReader::xml</methodname> are now
1648
+
<methodname>XMLReader::open</methodname> and <methodname>XMLReader::XML</methodname> are now
1617
1649
static methods. They can still be called as instance methods, but inheriting classes need to declare them
1618
1650
as static if they override these methods.
1619
1651
</para>
1620
1652