-
Notifications
You must be signed in to change notification settings - Fork 51
Expand file tree
/
Copy pathdeprecated.xml
More file actions
304 lines (256 loc) · 9.99 KB
/
Copy pathdeprecated.xml
File metadata and controls
304 lines (256 loc) · 9.99 KB
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
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 4642b715f374b4220884fa110b6529ac948799b5 Maintainer: samesch Status: ready -->
<sect1 xml:id="migration74.deprecated">
<title>Veraltete Features</title>
<sect2 xml:id="migration74.deprecated.core">
<title>PHP-Kern</title>
<sect3 xml:id="migration74.deprecated.core.nested-ternary">
<title>Verschachtelte ternäre Operatoren ohne explizite Klammern</title>
<para>
Verschachtelte ternäre Operationen müssen nun explizit Klammern verwenden,
um die Reihenfolge der Operationen festzulegen. Wenn in der Vergangenheit
keine Klammern verwendet wurden, führte die Links-Assoziativität in den
meisten Fällen nicht zum erwarteten Verhalten.
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
1 ? 2 : 3 ? 4 : 5; // veraltet
(1 ? 2 : 3) ? 4 : 5; // OK
1 ? 2 : (3 ? 4 : 5); // OK
?>
]]>
</programlisting>
</informalexample>
</para>
<para>
Klammern sind <emphasis>nicht</emphasis> erforderlich, wenn der mittlere
Operand umschlossen wird, da dies immer eindeutig ist und nicht durch die
Assoziativität beeinflusst wird:
<informalexample>
<programlisting role="php">
<![CDATA[
1 ? 2 ? 3 : 4 : 5 // OK
]]>
</programlisting>
</informalexample>
</para>
</sect3>
<sect3 xml:id="migration74.deprecated.core.array-string-access-curly-brace">
<title>Zugriff auf Array- und Zeichenketten-Offset mit geschweiften Klammern</title>
<para>
Die Syntax für den Zugriff auf Array- und String-Offsets mit geschweiften
Klammern ist veraltet. Statt <literal>$var{$idx}</literal> sollte
<literal>$var[$idx]</literal> verwendet werden.
</para>
</sect3>
<sect3 xml:id="migration74.deprecated.core.real">
<title>Die Typumwandlung (real) und die Funktion <function>is_real</function></title>
<para>
Die Typumwandlung <literal>(real)</literal> ist veraltet, stattdessen
<literal>(float)</literal> verwendet werden.
</para>
<para>
Die Funktion <function>is_real</function> ist ebenfalls veraltet,
stattdessen sollte <function>is_float</function> verwendet werden.
</para>
</sect3>
<sect3 xml:id="migration74.deprecated.core.unbind-this">
<title>Aufhebung der Bindung von <literal>$this</literal>, wenn <literal>$this</literal> verwendet wird</title>
<para>
Die Bindung von <literal>$this</literal> an eine nicht-statische Closure
aufzuheben, die <literal>$this</literal> verwendet, ist veraltet.
</para>
</sect3>
<sect3 xml:id="migration74.deprecated.core.parent">
<title>Schlüsselwort <literal>parent</literal> ohne übergeordnete Klasse</title>
<para>
Die Verwendung von <literal>parent</literal> innerhalb einer Klasse ohne
Elternklasse ist veraltet und wird in Zukunft einen Fehler bei der
Kompilierung auslösen. Derzeit wird ein Fehler nur dann erzeugt, wenn zur
Laufzeit auf die Elternklasse zugegriffen wird.
</para>
</sect3>
<sect3 xml:id="migration74.deprecated.core.allow-url-include">
<title>INI-Option allow_url_include</title>
<para>
Die INI-Direktive
<link linkend="ini.allow-url-include">allow_url_include</link> ist
veraltet. Wenn sie aktiviert ist, wird beim Start ein entsprechender
Hinweis erzeugt.
</para>
</sect3>
<sect3 xml:id="migration74.deprecated.core.invalid-base-characters">
<title>Ungültige Zeichen in Funktionen zur Umwandlung der Basis</title>
<para>
Die Übergabe unzulässiger Zeichen an die Funktionen
<function>base_convert</function>, <function>bindec</function>,
<function>octdec</function> und <function>hexdec</function> führt nun zu
einem Hinweis auf eine veraltete Verwendung. Das Ergebnis wird so
berechnet, als gäbe es das unzulässige Zeichen nicht. Führende und
nachfolgende Leerzeichen sowie Präfixe wie 0x (je nach Zahlensystem) sind
weiterhin zulässig.
</para>
</sect3>
<sect3 xml:id="migration74.deprecated.core.array-key-exists-objects">
<title>Die Anwendung von <function>array_key_exists</function> auf Objekte</title>
<para>
Die Anwendung der Funktion <function>array_key_exists</function> auf
Objekte ist veraltet. Stattdessen sollte entweder
<function>isset</function> oder <function>property_exists</function>
verwendet werden.
</para>
</sect3>
<sect3 xml:id="migration74.deprecated.core.magic-quotes-functions">
<title>Funktionen für "magische Anführungszeichen" (Magic Quotes)</title>
<para>
Die Funktionen <function>get_magic_quotes_gpc</function> und
<function>get_magic_quotes_runtime</function> sind veraltet. Sie geben
immer &false; zurück.
</para>
</sect3>
<sect3 xml:id="migration74.deprecated.core.hebrevc">
<title>Die Funktion <function>hebrevc</function></title>
<para>
Die Funktion <function>hebrevc</function> ist veraltet. Sie kann durch
<literal>nl2br(hebrev($str))</literal> ersetzt werden oder, besser, indem
die Unterstützung von Unicode-RTL genutzt wird.
</para>
</sect3>
<sect3 xml:id="migration74.deprecated.core.convert-cyr-string">
<title>Die Funktion <function>convert_cyr_string</function></title>
<para>
Die Funktion <function>convert_cyr_string</function> ist veraltet. Sie
kann durch <function>mb_convert_string</function>,
<function>iconv</function> oder <classname>UConverter</classname> ersetzt
werden.
</para>
</sect3>
<sect3 xml:id="migration74.deprecated.core.money-format">
<title>Die Funktion <function>money_format</function></title>
<para>
Die Funktion <function>money_format</function> ist veraltet. Sie kann
durch die Funktionalität der intl-Klasse
<classname>NumberFormatter</classname> ersetzt werden.
</para>
</sect3>
<sect3 xml:id="migration74.deprecated.core.ezmlm-hash">
<title>Die Funktion <function>ezmlm_hash</function></title>
<para>
Die Funktion <function>ezmlm_hash</function> ist veraltet.
</para>
</sect3>
<sect3 xml:id="migration74.deprecated.core.restore-include-path">
<title>Die Funktion <function>restore_include_path</function></title>
<para>
Die Funktion <function>restore_include_path</function> ist veraltet. Sie
kann durch <literal>ini_restore('include_path')</literal> ersetzt werden.
</para>
</sect3>
<sect3 xml:id="migration74.deprecated.core.implode-reverse-parameters">
<title>Reihenfolge der Parameter bei <function>implode</function></title>
<para>
Die Übergabe von Parametern an die Funktion <function>implode</function>
in umgekehrter Reihenfolge ist veraltet, statt
<literal>implode($parts, $glue)</literal> sollte
<literal>implode($glue, $parts)</literal> verwendet werden.
</para>
</sect3>
</sect2>
<sect2 xml:id="migration74.deprecated.com">
<title>COM</title>
<para>
Der Import von Typbibliotheken, bei denen die Groß- und Kleinschreibung von
Konstanten nicht beachtet wird, ist veraltet.
</para>
</sect2>
<sect2 xml:id="migration74.deprecated.filter">
<title>Filter</title>
<para>
Der Filter <constant>FILTER_SANITIZE_MAGIC_QUOTES</constant> ist veraltet,
stattdessen sollte <constant>FILTER_SANITIZE_ADD_SLASHES</constant>
verwendet werden.
</para>
</sect2>
<sect2 xml:id="migration74.deprecated.mbstring">
<title>Multibyte-Zeichenketten</title>
<para>
Bei der Funktion <function>mb_ereg_replace</function> ist die Übergabe
eines Musters, das keine Zeichenkette ist, veraltet. Gegenwärtig werden
solche Muster als ASCII-Codepunkte interpretiert. In PHP 8 wird das Muster
stattdessen als Zeichenkette interpretiert.
</para>
<para>
Bei der Funktion <function>mb_strrpos</function> ist die Übergabe der
Kodierung als 3. Parameter veraltet. Stattdessen sollten ein 0-Offset und
die Kodierung als 4. Parameter übergeben werden.
</para>
</sect2>
<sect2 xml:id="migration74.deprecated.ldap">
<title>Lightweight Directory Access Protocol (LDAP)</title>
<para>
Die Funktionen <function>ldap_control_paged_result_response</function> und
<function>ldap_control_paged_result</function> sind veraltet.
Steuerelemente für die Seitennavigation können stattdessen zusammen mit
<function>ldap_search</function> gesendet werden.
</para>
</sect2>
<sect2 xml:id="migration74.deprecated.reflection">
<title>Reflection</title>
<para>
Der Aufruf von <methodname>ReflectionType::__toString</methodname> erzeugt
nun einen Hinweis auf eine veraltete Funktion. Diese Methode wird in der
Dokumentation seit PHP 7.1 als veraltet zugunsten von
<methodname>ReflectionNamedType::getName</methodname> bezeichnet, hat aber
aus technischen Gründen keinen entsprechenden Hinweis erzeugt.
</para>
<para>
Die <literal>export()</literal>-Methoden sind in allen Klassen von
<classname>Reflection</classname> veraltet. Stattdessen sollte ein
<classname>Reflection</classname>-Objekt erzeugt werden und dieses in eine
Zeichenkette umgewandelt werden:
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
// Anstelle von ReflectionClass::export(Foo::class, false):
echo new ReflectionClass(Foo::class), "\n";
// Anstelle von $str = ReflectionClass::export(Foo::class, true):
$str = (string) new ReflectionClass(Foo::class);
?>
]]>
</programlisting>
</informalexample>
</para>
</sect2>
<sect2 xml:id="migration74.deprecated.socket">
<title>Socket</title>
<para>
Bei der Funktion <function>socket_addrinfo_lookup</function> sind die Flags
<constant>AI_IDN_ALLOW_UNASSIGNED</constant> und
<constant>AI_IDN_USE_STD3_ASCII_RULES</constant> veraltet und entsprechen
damit der zugrundeliegenden Glibc.
</para>
</sect2>
</sect1>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->