Skip to content

Commit

Permalink
Sync with EN
Browse files Browse the repository at this point in the history
  • Loading branch information
msamesch committed Nov 29, 2024
1 parent fd6981f commit f549e6b
Show file tree
Hide file tree
Showing 16 changed files with 392 additions and 101 deletions.
9 changes: 8 additions & 1 deletion appendices/tokens.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 8a6397d39aefd23c61d64aa4e9af919772541e2a Maintainer: nobody Status: ready -->
<!-- EN-Revision: 9418ae19ae6ab1d3f1536db986830362b207b1d6 Maintainer: nobody Status: ready -->
<!-- Reviewed: yes -->
<!-- Rev-Revision: eb81160ac962698bf6e5fc2c8a7406df55aad25e Reviewer: samesch -->

Expand Down Expand Up @@ -790,6 +790,13 @@ defined('T_FN') || define('T_FN', 10001);
Eigenschafts-Hooks (verfügbar seit PHP 8.4.0)
</entry>
</row>
<row xml:id="constant.t-property-c">
<entry><constant>T_PROPERTY_C</constant></entry>
<entry>__PROPERTY__</entry>
<entry>
<link linkend="language.constants.predefined">Magische Konstanten</link>
</entry>
</row>
<row xml:id="constant.t-protected">
<entry><constant>T_PROTECTED</constant></entry>
<entry>protected</entry>
Expand Down
9 changes: 7 additions & 2 deletions language-snippets.ent
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 9a5b92a30888d6423db112f07a9b344cf6fc4891 Maintainer: simp Status: ready -->
<!-- EN-Revision: c75f19c74fa3b64abfafd7a35aaa652b07834a5a Maintainer: simp Status: ready -->
<!-- CREDITS: sammywg, mk, betz -->

<!ENTITY installation.enabled.disable 'Diese Erweiterung ist standardmäßig aktiviert. Sie kann bei der Kompilierung mit der folgenden Option ausgeschaltet werden: '>
Expand Down Expand Up @@ -2271,7 +2271,12 @@ umgewandelt werden, oder es sollte ein expliziter Aufruf von

<!-- GMP Notes -->
<!ENTITY gmp.return 'Ein <classname xmlns="http://docbook.org/ns/docbook">GMP</classname>-Objekt.'>
<!ENTITY gmp.parameter '<para xmlns="http://docbook.org/ns/docbook">Ein <classname>GMP</classname>-Object, ein &integer; oder eine numeriche Zeichenkette.</para>'>
<!ENTITY gmp.parameter '<para xmlns="http://docbook.org/ns/docbook">
Ein <classname>GMP</classname>-Object, ein &integer; oder eine Zeichenkette,
die als Zahl interpretiert werden kann, wobei die gleiche Logik gilt, als ob
die Zeichenkette in <function>gmp_init</function> mit automatischer Erkennung
der Basis verwendet würde (&dh; wenn <parameter>base</parameter> gleich 0 ist).
</para>'>

<!-- MySQLi Notes -->
<!ENTITY mysqli.result.description '<varlistentry xmlns="http://docbook.org/ns/docbook"><term>
Expand Down
9 changes: 5 additions & 4 deletions language/constants.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: f9dabdea3f92ea77cf5077020a3e945951fdc9db Maintainer: sammywg Status: ready -->
<!-- EN-Revision: 9418ae19ae6ab1d3f1536db986830362b207b1d6 Maintainer: sammywg Status: ready -->
<!-- Reviewed: yes -->
<!-- Rev-Revision: 5a945dfef09a9595c83855cdb858ffa4a96af305 Reviewer: samesch -->
<chapter xml:id="language.constants" xmlns="http://docbook.org/ns/docbook">
Expand Down Expand Up @@ -265,7 +265,7 @@ echo ANIMALS[1]; // gibt "Katze" aus
<sect1 xml:id="language.constants.magic">
<title>Magische Konstanten</title>
<para>
Es gibt neun magische Konstanten, die, abhängig davon, wo sie eingesetzt
Es gibt ein paar magische Konstanten, die, abhängig davon, wo sie eingesetzt
werden, einen unterschiedlichen Wert haben. Zum Beispiel hängt der Wert
der Konstanten <constant>__LINE__</constant> davon ab, in welcher Zeile
des Skripts diese Konstante verwendet wird. Alle diese "magischen"
Expand Down Expand Up @@ -322,8 +322,9 @@ echo ANIMALS[1]; // gibt "Katze" aus
<entry>
Der Name einer Klasse. Der Klassenname enthält den Namen des
Namensraums, in dem sie deklariert wurde (&zb;
<literal>Foo\Bar</literal>). Bei Verwendung in einer Trait-Methode,
ist __CLASS__ der Name der Klasse, in der der Trait verwendet wird.
<literal>Foo\Bar</literal>). Bei Verwendung innerhalb einer
Trait-Methode ist <constant>__CLASS__</constant> der Name der Klasse,
in der der Trait verwendet wird.
</entry>
</row>
<row xml:id="constant.trait">
Expand Down
5 changes: 4 additions & 1 deletion language/errors/php7.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 1f7a0e4af85d1b74595626afa1ca774c896e8388 Maintainer: simp Status: ready -->
<!-- EN-Revision: 4bf789e981af0836c41daa16e57ef86c21497faa Maintainer: simp Status: ready -->
<!-- Reviewed: no -->

<sect1 xml:id="language.errors.php7" xmlns="http://docbook.org/ns/docbook">
Expand Down Expand Up @@ -81,6 +81,9 @@
<listitem>
<simpara><classname>FiberError</classname></simpara>
</listitem>
<listitem>
<simpara><classname>RequestParseBodyException</classname></simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
Expand Down
107 changes: 57 additions & 50 deletions language/functions.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 489d46bc2598784bd3711454ccab8940107cde67 Maintainer: cmb Status: ready -->
<!-- EN-Revision: ee205135d091ffca38bebfb33b4ca7e51cf87625 Maintainer: cmb Status: ready -->
<!-- Reviewed: yes -->
<!-- Rev-Revision: b95e76e41de2ffe5c75e04be1b187d80ca745359 Reviewer: samesch -->
<!-- Credits: hholzgra, tom, updated to fix build by theseer -->
Expand Down Expand Up @@ -174,13 +174,15 @@ function recursion($a)
</sect1>

<sect1 xml:id="functions.arguments">
<title>Funktionsparameter</title>
<title>Funktionsparameter und -argumente</title>
<simpara>
Mit einer Parameterliste kann man Informationen an eine Funktion
übergeben. Die Parameterliste ist eine durch Kommas getrennte Liste von
Ausdrücken. Die Parameter werden von links nach rechts ausgewertet, bevor
die eigentliche Funktion aufgerufen wird, &dh; mit der sog.
<emphasis>eager</emphasis> Evaluation (dt. eifrige Auswertung).
Die Funktionsparameter werden in der Signatur der Funktion deklariert.
Mit einer Liste von Argumenten kann man Informationen an eine Funktion
übergeben. Die Argumentenliste ist eine durch Kommas getrennte Liste von
Ausdrücken. Die Argumente werden von links nach rechts ausgewertet und das
Ergebnis wird den Parametern der Funktion zugewiesen, bevor die eigentliche
Funktion aufgerufen wird, &dh; mit der sog.
<emphasis>eager</emphasis>-Evaluation (dt. eifrige Auswertung).
</simpara>
<para>
PHP unterstützt die Weitergabe von Parametern als Werte (das ist der
Expand Down Expand Up @@ -267,8 +269,9 @@ echo $str; // Ausgabe: 'Dies ist ein String, und etwas mehr.'
</example>
</para>
<para>
Es ist ein Fehler, einen Wert als Parameter zu übergeben, der eigentlich
als Referenz übergeben werden müsste.
Es ist ein Fehler, einen konstanten Ausdruck als Argument an einen
Parameter zu übergeben, der eigentlich als Referenz übergeben werden
müsste.
</para>
</sect2>
<sect2 xml:id="functions.arguments.default">
Expand All @@ -277,8 +280,8 @@ echo $str; // Ausgabe: 'Dies ist ein String, und etwas mehr.'
<para>
Eine Funktion kann Standardwerte für Parameter definieren, indem sie eine
ähnliche Syntax wie bei der Zuweisung von Variablen verwendet. Der
Standardwert wird nur verwendet, wenn der Parameter nicht angegeben ist.
Dabei ist insbesondere zu beachten, dass bei der Übergabe von &null;
Standardwert wird nur verwendet, wenn für den Parameter kein Argument
übergeben wurde. Es ist zu beachten, dass bei der Übergabe von &null;
<emphasis>nicht</emphasis> der Standardwert zugewiesen wird.
</para>
<para>
Expand Down Expand Up @@ -386,7 +389,7 @@ Bereite einen schönen Kaffee für Dich zu.
</para>
<para>
<example>
<title>Ungültige Verwendung von Vorgabewerten</title>
<title>Ungültige Verwendung von Funktionsparametern mit Vorgabewerten</title>
<programlisting role="php">
<![CDATA[
<?php
Expand All @@ -413,7 +416,7 @@ Fatal error: Uncaught ArgumentCountError: Too few arguments
</para>
<para>
<example>
<title>Richtiger Einsatz von Vorgabewerten</title>
<title>Richtiger Einsatz von Funktionsparametern mit Vorgabewerten</title>
<programlisting role="php">
<![CDATA[
<?php
Expand All @@ -436,12 +439,12 @@ Mache einen Becher rechtsdrehendes Brombeer-Joghurt.
</para>
<para>
Seit PHP 8.0.0 können
<link linkend="functions.named-arguments">benannte Parameter</link>
<link linkend="functions.named-arguments">benannte Argumente</link>
verwendet werden, um mehrere optionale Parameter zu überspringen.
</para>
<para>
<example>
<title>Korrekte Verwendung von Funktionsparametern mit Standardwerten</title>
<title>Korrekte Verwendung von Funktionsparametern mit Vorgabewerten</title>
<programlisting role="php">
<![CDATA[
<?php
Expand Down Expand Up @@ -502,25 +505,25 @@ function bar(?A $a, $b) {} // Empfohlen
</note>
<note>
<simpara>
Parameter, die per Verweis übergeben werden, dürfen einen Standardwert
Parameter, die ein Argument per Verweis erwarten, dürfen einen Standardwert
haben.
</simpara>
</note>
</sect2>

<sect2 xml:id="functions.variable-arg-list">
<title>Variable Anzahl von Parametern</title>
<title>Variable Anzahl von Argumenten</title>
<simpara>
PHP unterstützt eine variable Anzahl an Parametern in benutzerdefinierten
PHP unterstützt eine variable Anzahl an Argumenten in benutzerdefinierten
Funktionen durch Verwendung des <literal>...</literal>-Tokens.
</simpara>
<para>
Eine Liste von Parametern kann das Token <literal>...</literal>
enthalten, um anzugeben, dass die Funktion eine variable Anzahl von
Parametern akzeptiert. Die zusätzlichen Werte werden als &array; an die
Argumenten akzeptiert. Die Argumente werden als &array; an die
entsprechende Variable übergeben:
<example>
<title>Verwendung von <literal>...</literal> für den Zugriff auf variable Parameter</title>
<title>Verwendung von <literal>...</literal> für den Zugriff auf variable Argumente</title>
<programlisting role="php">
<![CDATA[
<?php
Expand All @@ -547,9 +550,9 @@ echo sum(1, 2, 3, 4);
<para>
Das Token <literal>...</literal> kann auch dazu verwendet werden, um ein
<type>&array;</type> oder ein <classname>Traversable</classname>-Objekt als
Liste von Parametern zu übergeben:
Liste von Argumenten zu übergeben:
<example>
<title>Verwendung von <literal>...</literal> zur Übergabe einer Parameterliste</title>
<title>Verwendung von <literal>...</literal> zur Übergabe einer Argumentenliste</title>
<programlisting role="php">
<![CDATA[
<?php
Expand Down Expand Up @@ -583,10 +586,10 @@ echo add(...$a);
<para>
Es ist zudem auch möglich, dem <literal>...</literal>-Token eine
<link linkend="language.types.declarations">Typdeklaration</link>
voranzustellen. Ist dies der Fall, dann müssen alle Parameter, die von
voranzustellen. Ist dies der Fall, dann müssen alle Argumente, die von
<literal>...</literal> erfasst werden, vom entsprechenden Typ sein.
<example>
<title>Variable Parameter mit Typdeklaration</title>
<title>Variable Argumente mit Typdeklaration</title>
<programlisting role="php">
<![CDATA[
<?php
Expand Down Expand Up @@ -618,32 +621,32 @@ Catchable fatal error: Argument 2 passed to total_intervals() must be an instanc
</para>
<para>
Durch ein voran gestelltes <literal>&amp;</literal> ist auch die Übergabe
von variablen Parametern
von variablen Argumenten
<link linkend="functions.arguments.by-reference">als Referenz</link>
möglich.
</para>

</sect2>

<sect2 xml:id="functions.named-arguments">
<title>Benannte Parameter</title>
<title>Benannte Argumente</title>
<para>
PHP 8.0.0 führt benannte Parameter als eine Erweiterung der bestehenden
Positionsparameter ein. Benannte Parameter ermöglichen die Übergabe von
Parametern an eine Funktion basierend auf dem Parameternamen und nicht
auf der Position des Parameters. Das macht die Bedeutung von Parametern
selbsterklärend, macht die Parameter unabhängig von der Reihenfolge und
PHP 8.0.0 führt benannte Argumente als eine Erweiterung der bestehenden
Positionsparameter ein. Benannte Argumente ermöglichen die Übergabe von
Argumenten an eine Funktion basierend auf dem Parameternamen und nicht
auf der Position des Parameters. Das macht die Bedeutung von Argumenten
selbsterklärend, macht die Argumente unabhängig von der Reihenfolge und
ermöglicht das willkürliche Überspringen von Standardwerten.
</para>
<para>
Benannte Parameter werden übergeben, indem dem Wert der Parametername
Benannte Argumente werden übergeben, indem dem Wert der Parametername
gefolgt von einem Doppelpunkt vorangestellt wird. Reservierte
Schlüsselwörter dürfen als Parameternamen verwendet werden. Der
Parametername muss ein Bezeichner sein; eine dynamische Angabe ist nicht
erlaubt.
</para>
<example>
<title>Syntax benannter Parameter</title>
<title>Syntax benannter Argumente</title>
<programlisting role="php">
<![CDATA[
<?php
Expand All @@ -657,21 +660,21 @@ function_name($variableStoringParamName: $value);
</programlisting>
</example>
<example>
<title>Positionsparameter im Vergleich zu benannten Parametern</title>
<title>Positionsargumente im Vergleich zu benannten Argumenten</title>
<programlisting role="php">
<![CDATA[
<?php
// Verwendung von Positionsparametern:
// Verwendung von Positionsargumenten:
array_fill(0, 100, 50);
// Verwendung von benannten Parametern:
// Verwendung von benannten Argumenten:
array_fill(start_index: 0, count: 100, value: 50);
?>
]]>
</programlisting>
</example>
<para>
Die Reihenfolge, in der die benannten Parameter übergeben werden, spielt
Die Reihenfolge, in der die benannten Argumente übergeben werden, spielt
keine Rolle.
</para>
<example>
Expand All @@ -685,13 +688,13 @@ array_fill(value: 50, count: 100, start_index: 0);
</programlisting>
</example>
<para>
Benannte Parameter können mit Positionsparametern kombiniert werden. In
diesem Fall müssen die benannten Parameter nach den Positionsparametern
kommen. Es ist auch möglich, nur einige der optionalen Parameter einer
Benannte Argumente können mit Positionsargumenten kombiniert werden. In
diesem Fall müssen die benannten Argumente nach den Positionsargumenten
kommen. Es ist auch möglich, nur einige der optionalen Argumente einer
Funktion anzugeben, unabhängig von ihrer Reihenfolge.
</para>
<example>
<title>Kombinieren von benannten Parametern mit Positionsparametern</title>
<title>Kombinieren von benannten Argumenten mit Positionsargumenten</title>
<programlisting role="php">
<![CDATA[
<?php
Expand All @@ -703,33 +706,37 @@ htmlspecialchars($string, ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401, 'UTF-8', fa
</programlisting>
</example>
<para>
Die mehrfache Übergabe desselben Parameters führt zu einer Error-Exception.
Die mehrfache Übergabe eines Arguments an denselben benannten Parameter
führt zu einer <classname>Error</classname>-Exception.
</para>
<example>
<title>Die mehrfache Übergabe desselben Parameters erzeugt einen Fehler</title>
<title>Die mehrfache Übergabe eines Arguments an denselben benannten Parameter erzeugt einen Fehler</title>
<programlisting role="php">
<![CDATA[
<?php
function foo($param) { ... }
foo(param: 1, param: 2);
// Error: Named parameter $param overwrites previous argument
foo(1, param: 2);
// Error: Named parameter $param overwrites previous argument
?>
]]>
</programlisting>
</example>

<para>
Seit PHP 8.1.0 ist es möglich, benannte Parameter nach dem Entpacken von
Parametern zu verwenden. Ein bereits entpackter Parameter
<emphasis>darf nicht</emphasis> durch einen benannten Parameter
Seit PHP 8.1.0 ist es möglich, benannte Argumente nach dem Entpacken von
Argumenten zu verwenden. Ein bereits entpacktes Argument
<emphasis>darf nicht</emphasis> durch einen benanntes Argument
überschrieben werden.
</para>

<example>
<title>Verwendung benannter Parameter nach dem Entpacken</title>
<title>Verwendung benannter Argumente nach dem Entpacken</title>
<programlisting role="php">
<![CDATA[
<?php
Expand All @@ -740,7 +747,7 @@ function foo($a, $b, $c = 3, $d = 4) {
var_dump(foo(...[1, 2], d: 40)); // 46
var_dump(foo(...['b' => 2, 'a' => 1], d: 40)); // 46
var_dump(foo(...[1, 2], b: 20)); // Fataler Fehler. Der benannte Parameter $b überschreibt den vorherige Parameter
var_dump(foo(...[1, 2], b: 20)); // Fataler Fehler. Der benannte Parameter $b überschreibt das vorherige Argument
?>
]]>
</programlisting>
Expand Down Expand Up @@ -869,7 +876,7 @@ function foo() {
function bar($arg = '')
{
echo "In bar(); der Parameter ist '$arg'.<br />\n";
echo "In bar(); das Argument ist '$arg'.<br />\n";
}
// Dies ist eine Wrapperfunktion für echo
Expand Down Expand Up @@ -1189,7 +1196,7 @@ $example();
$message = 'welt';
$example();
// Closures können auch reguläre Parameter akzeptieren
// Closures können auch reguläre Argumente akzeptieren
$example = function ($arg) use ($message) {
var_dump($arg . ' ' . $message);
};
Expand Down
Loading

0 comments on commit f549e6b

Please sign in to comment.