svn: /phpdoc/de/trunk/ appendices/history.xml appendices/tokens.xml language/operators.xml

[email protected] (Christoph Michael Becker)
Newsgroups php.doc.de
Message-ID <[email protected]>
cmb                                      Mon, 16 Apr 2018 21:06:12 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=344679

Log:
Sync with EN (plus minimal required fix)

Changed paths:
    U   phpdoc/de/trunk/appendices/history.xml
    U   phpdoc/de/trunk/appendices/tokens.xml
    U   phpdoc/de/trunk/language/operators.xml
svn-diffs-344679.txt (text/x-diff, 56.2 KB)
Modified: phpdoc/de/trunk/appendices/history.xml
===================================================================
--- phpdoc/de/trunk/appendices/history.xml	2018-04-16 20:57:14 UTC (rev 344678)
+++ phpdoc/de/trunk/appendices/history.xml	2018-04-16 21:06:12 UTC (rev 344679)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- $Revision$ -->
-<!-- EN-Revision: n/a Maintainer: hholzgra Status: ready -->
+<!-- EN-Revision: 334762 Maintainer: nobody Status: ready -->
 <!-- Credits: tom -->

 <appendix xml:id="history" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
@@ -18,57 +18,108 @@
   <title>Die Geschichte von PHP</title>

   <sect2 xml:id="history.phpfi">
-   <title>PHP/FI</title>
+   <title>PHP Tools, FI, Construction Kit, und PHP/FI</title>
    <para>
     PHP ist der Nachfolger eines älteren Produktes, PHP/FI. PHP/FI
-    wurde 1995 von Rasmus Lerdorf geschaffen. Ursprünglich war
-    PHP/FI ein Set von Perl Skripten zur Erfassung der Zugriffe
+    wurde 1994 von Rasmus Lerdorf geschaffen. Ursprünglich war
+    PHP/FI ein Set von Common Gateway Interface (CGI) Programmen zur Erfassung der Zugriffe
     auf seinen Webauftritt. Er nannte dieses Set von Skripten
-    'Personal Home Page Tools'. Als dann mehr Funktionalität
-    benötigt wurde, schrieb Rasmus eine viel größere Umsetzung
-    in C, welche auch mit Datenbanken kommunizieren konnte, und
+    "Personal Home Page Tools", auch bekannt als "PHP Tools". Als dann mehr Funktionalität
+    benötigt wurde, schrieb Rasmus eine viel größere Umsetzung,
+    welche auch mit Datenbanken kommunizieren konnte, und
     den Benutzern die Entwicklung einfacher dynamischer
-    Webapplikationen ermöglichte. Rasmus entschloss sich, den
-    Sourcecode von PHP/FI zu <link
+    Webapplikationen, wie Gästebüchern, ermöglichte. Rasmus entschloss sich im Juni 1995, den
+    Sourcecode der PHP Tools zu <link
     xlink:href="&url.php.release1.0.0;">veröffentlichen</link>, sodass ihn
     jeder benutzen, von Fehlern bereinigen, und weiterentwicklen konnte.
    </para>
    <para>
-    PHP/FI stand für Personal Home Page / Forms Interpreter, und
-    beinhaltete manches an Funktionalität des PHP wie wir es heute
-    kennen. Es besaß Variablen wie in Perl, eine automatische
-    Interpretation von Formularvariablen und eine in HTML eingebettete
-    Syntax. Die Syntax selbst war der von Perl ähnlich, wenn auch viel
-    eingeschränkter, einfach, und ziemlich inkonsistent.
+    Im September dieses Jahres erweiterte Rasmus PHP und verzichtete sogar
+    kurzzeitig auf das PHP im Namen. Nun wurden die Tools FI (kurz für "Formas
+    Interpreter") genannt, und beinhalteten manches an Funktionalität des PHP
+    wie wir es heute kennen. Es besaß Variablen wie in Perl, automatische
+    Interpretation von Formularvariablen und eine in HTML eingebettete Syntax.
+    Die Syntax selbst war der von Perl ähnlich, wenn auch viel eingeschränkter,
+    einfach, und etwas inkonsistent. Tatsächlich mussten HTML-Kommentare
+    verwendet werden, um den Code in eine HTML-Datei einzubetten. Obschon diese
+    Methode nicht überall gut aufgenommen wurde, erfreute sich FI zunehmend an
+    Wachstum und Akzeptanz als CGI-Tool – aber immer noch nicht wirklich als
+    Sprache. Allerdings begann sich das im folgenden Monat zu ändern; im Oktober
+    1995 veröffentlichte Rasmus ein vollständiges Rewrite des Codes, und nannte
+    es nun kurzzeitig Personal Home Page Construction Kit", und dies wurde als,
+    für damalige Verhältnisse, fortgeschrittenes Skript-Interface angesehen. Die
+    Sprache war absichtlich so gestaltet, dass sie C ähnelte, was die Struktur
+    anging, so dass es leicht von Entwicklern genutzt werden konnte, die mit C,
+    Perl und ähnlichen Sprachen vertraut waren. Soweit war es auf UNIX und
+    POSIX-konforme System beschränkt, aber die Möglichkeit einer Windows NT
+    Implementierung wurde untersucht.
    </para>
    <para>
-    1997 war PHP/FI 2.0, die zweite Überarbeitung der C Implementierung,
-    Kult für einige tausend Benutzer weltweit (geschätzt). Etwa
-    50.000 Domains berichteten PHP/FI 2.0 installiert zu haben, was mit
-    ca. 1% der Domains im Internet zu Buche schlug. Obwohl manche Leute
-    diesem Projekt ein Stück Code beisteuerten, war es insgesamt immer
-    noch ein Ein-Mann-Projekt.
+    Der Code erhielt eine weitere vollständige Überarbeitung, und im April 1996,
+    führte Rasmus, die Namen der vergangenen Veröffentlichungen kombinierend,
+    PHP/FI ein. Diese Implementierung der zweiten Generation war der Beginn der
+    Entwicklung von PHP von einer Sammlung von Tools in eine richtige
+    Programmiersprache. Es enthielt eingebaute Unterstützung für DBM, mSQL und
+    Postgres95 Datenbanken, Cookies, benutzerdefinierte Funktionen und vieles
+    mehr. PHP/FI 2.0 wurde im November 1997 offiziell freigegeben, nachdem es
+    die meiste Zeit seines Lebenszyklus als verschiedene Betaversionen verbracht
+    hatte.
    </para>
    <para>
-    PHP/FI 2.0 wurde im November 1997 offiziell freigegeben, nachdem es
-    die meiste Zeit seines Lebenszyklus als verschiedene Betaversionen
-    verbracht hatte. Es wurde kurz danach von den ersten Alphaversionen
-    von PHP 3 abgelöst.
+    Obwohl es nur für eine kurze Zeit entwickelt wurde, erfreute es sich
+    zunehmend wachsender Beliebtheit in der noch immer jungen Welt der
+    Web-Entwicklung. In 1997 und 1998 war PHP/FI Kult für mehrere Tausend Nutzer
+    auf der ganzen Welt. Eine Netcraft-Erhebung von Mai 1998 zeigte an, dass
+    nahezu 60.000 Domains HTTP-Header mit dem Inhalt "PHP" versandten, was
+    bedeutete, dass der Host-Server es tatsächlich installiert hatte. Diese Zahl
+    war zu dieser Zeit mit ungefähr 1% aller Domains im Internet gleichzusetzen.
+    Trotz dieser eindrucksvollen Zahlen, stand das weitere Reifen von PHP/FI
+    unter schwierigen vorzeichen, da es im Wesentlichen noch immer von einem
+    Individuum entwickelt wurde.
    </para>
+   <para>
+    <example>
+     <title>PHP/FI Code-Beispiel</title>
+     <programlisting role="html">
+<![CDATA[
+<!--include /text/header.html-->
+
+<!--getenv HTTP_USER_AGENT-->
+<!--ifsubstr $exec_result Mozilla-->
+  He, sie verwenden Netscape!<p>
+<!--endif-->
+
+<!--sql database select * from table where user='$username'-->
+<!--ifless $numentries 1-->
+  Pardon, dieser Datensatz ist nicht vorhanden<p>
+<!--endif exit-->
+  Willkommen <!--$user-->!<p>
+  Sie haben auf ihrem Konto <!--$index:0--> Credits übrig.<p>
+
+<!--include /text/footer.html-->
+]]>
+     </programlisting>
+    </example>
+   </para>
   </sect2>

   <sect2 xml:id="history.php3">
    <title>PHP 3</title>
    <para>
-    PHP 3.0 war die erste Version, die dem heutigen PHP sehr gleicht.
-    Es wurde 1997 von Andi Gutmans und Zeev Suraski neu geschrieben,
-    nachdem PHP/FI 2.0 ihrer Meinung nach für die Entwicklung ihrer
-    eCommerce Applikation für ein Universitätsprojekt arbeiteten,
-    viel zu schwach war. Auf die Basis der bestehenden Benutzer von
-    PHP/FI aufbauend, entschieden sich Andi, Rasmus und Zeev zur
-    Kooperation, und kündigten PHP 3.0 als den offiziellen Nachfolger
-    von PHP/FI 2.0 an, und die Entwicklung von PHP/FI 2.0 wurde
-    größtenteils eingestellt.
+    PHP 3.0 war die erste Version, die dem heutigen PHP gleicht. Da sie PHP/FI
+    2.0 noch immer uneffizient fanden, und Features vermissten, die sie für eine
+    eCommerce-Anwendung benötigten, die sie für ein Universitätsprojekt
+    entwickelten, begannen Andi Gutmans and Zeev Suraski aus Tel Aviv, Israel,
+    1997 ein weiteres vollständiges Rewrite des unterliegenden Parsers. Sie
+    kontaktierten Rasmus online, und diskutierten diverse Aspekte der aktuellen
+    Implementierung und ihrer Neuentwicklung von PHP. Im Bestreben die Engine zu
+    verbessern, und auf der Basis der bestehenden Benutzer von PHP/FI aufbauend,
+    entschieden sich Andi, Rasmus und Zeev zur Kooperation, um eine neue
+    unabhängige Programmiersprache zu entwickeln. Die gesamte neue Sprache wurde
+    unter einem neuen Namen veröffentlicht, welche die im Namen PHP/FI 2.0
+    vorhandene Implizierung einer eingeschränkten persönlichen Nutzung
+    beseitigte. Es wurde einfach 'PHP' genannt, ein rekursives Akronym für PHP:
+    Hypertext Preprocessor.
    </para>
    <para>
     Eine der größten Stärken von PHP 3.0 waren die starken
@@ -83,23 +134,19 @@
     konsistentere Sprachsyntax.
    </para>
    <para>
-    Die gesamte neue Sprache wurde unter einem neuen Namen
-    veröffentlicht, welche die im Namen PHP/FI 2.0 vorhandene
-    Implizierung einer eingeschränkten persönlichen Nutzung
-    beseitigte. Es wurde einfach 'PHP' genannt, ein rekursives
-    Akronym für PHP: Hypertext Preprocessor.
+    Im Juni 1998, mit vielen neuen Entwicklern aus der ganzen Welt, die sich dem
+    Einsatz angeschlossen hatten, wurde PHP 3.0 vom neuen PHP-Entwicklungsteam
+    als offizieller Nachfolger für PHP/FI 2.0 angekündigt. Die aktive
+    Entwicklung von PHP/FI 2.0, die von November des Vorjahres an weitgehend
+    eingestellt worden war, wurde nun offiziell beendet. Nach einer ungefähr
+    neunmonatigen öffentlichen Testphase wurde PHP 3.0 offiziell freigegeben. Zu
+    dieser Zeit war es bereits auf über 70.000 Domains in der ganzen Welt
+    installiert, und nicht länger auf POSIX-konforme Betriebssysteme beschränkt.
+    Ein eher kleiner Anteil der Domains, die PHP als installiert angaben, waren
+    auf Servern gehostet, die unter Windows 95, 98 und NT liefen, bzw. auf
+    Macintosh-Rechnern. An seinem Höhepunkt war PHP 3.0 auf etwa 10% der
+    Webserver im Internet installiert.
    </para>
-   <para>
-    Gegen Ende 1998 wuchs PHP auf eine installierte Basis von
-    (geschätzten) zehntausenden Benutzern und hunderttausenden
-    Websites, auf denen PHP installiert war, heran. An seinem
-    Höhepunkt war PHP 3.0 auf etwa 10% der Webserver im Internet
-    installiert.
-   </para>
-   <para>
-    PHP 3.0 wurde im Juni 1998 nach einer neunmonatigen öffentlichen
-    Testphase offiziell freigegeben.
-   </para>
   </sect2>

   <sect2 xml:id="history.php4">
@@ -109,7 +156,7 @@
     begannen Andi Gutmans und Zeev Suraski den Kern von PHP
     umzuschreiben. Die Ziele waren eine verbesserte Leistung von
     komplexen Applikationen, und eine verbesserte Modularität des
-    Basiscodes. Solche Applikationen wurden durch die neuen
+    Code-Basis. Solche Applikationen wurden durch die neuen
     Leistungsmerkmale von PHP 3.0, der Unterstützung einer großen
     Auswahl von Datenbanken und APIs von Drittanbietern möglich
     gemacht, aber PHP 3.0 war nicht dafür entworfen, solche
@@ -128,17 +175,6 @@
     Ausgabepufferung, sicherere Wege im Umgang mit Benutzereingaben,
     und verschiedene neue Sprachkonstrukte.
    </para>
-   <para>
-    Heute wird PHP von (schätzungsweise) hunderttausenden Entwicklern
-    verwendet, und es wird von mehreren Millionen Sites berichtet, auf
-    welchen PHP installiert ist, was mit über 20% der Domains im Internet
-    zu Buche schlägt.
-   </para>
-   <para>
-    Das Entwicklerteam von PHP besteht aus Dutzenden von Entwicklern,
-    ergänzt durch Dutzende von weiteren Personen, die an verwandten
-    Projekten wie PEAR oder dem Dokumentationsprojekt arbeiten.
-   </para>
   </sect2>

   <sect2 xml:id="history.php5">
@@ -145,9 +181,19 @@
    <title>PHP 5</title>
    <para>
     PHP 5 wurde im Juli 2004 nach langer Entwicklung und mehreren Pre-Releases
-    veröffentlicht. Der Kern von PHP 5 ist die Zend Engine 2.0, die ein neues
+    veröffentlicht. Der Kern von PHP 5 ist die <literal>Zend Engine 2.0</literal>, die ein neues
     Objektmodell und Dutzende anderer neuer Features einführt.
    </para>
+   <para>
+    Das Entwicklerteam von PHP besteht aus Dutzenden von Entwicklern, ergänzt
+    durch Dutzende von weiteren Personen, die an verwandten Projekten wie PEAR,
+    PECL, der Dokumentation, und einer Netzwerkinfrastruktur von gut über
+    einhundert individuellen Webservern auf sechs der sieben Kontinente,
+    arbeiten. Obgleich nur eine Schätzung basierend auf Statistiken der
+    vergangenen Jahre, kann man gewiss davon ausgehen, dass PHP nun auf
+    dutzenden oder vielleicht sogar hunderten von Millionen Domains in der
+    ganzen Welt installiert ist.
+   </para>
   </sect2>
  </sect1>

@@ -184,13 +230,13 @@
     mit vielen Entwicklern gewachsen, welche an der Implementierung
     von gemeinsamer, wiederverwendbarer Funktionalität zum Nutzen der
     gesamten PHP Gemeinschaft arbeiten. PEAR umfasst heute eine große
-    Auswahl an infrastrukturellen Basisklassen, für Datenbankzugriff,
-    Zwischenspeicherung von Inhalten, mathematischen Kalkulationen,
-    eCommerce, und viel, viel mehr.
+    Auswahl an infrastrukturellen Basisklassen für Datenbankzugriff,
+    Zwischenspeicherung von Inhalten, mathematischen Berechnungen,
+    eCommerce, und viel mehr.
    </para>
    <para>
-    Weitere Informationen zu PEAR finden sie im
-    <link xlink:href="&url.php.pear.manual;">PEAR Manual</link>.
+    Weitere Informationen zu PEAR sind im
+    <link xlink:href="&url.php.pear.manual;">PEAR Manual</link> zu finden.
    </para>
   </sect2>

@@ -200,7 +246,7 @@
     Die <link xlink:href="&url.php.prerelease;">PHP Initiative
     zur Qualitätssicherung</link> wurde im Sommer
     2000 als Reaktion auf die Kritik, dass PHP Releases für
-    Produktionssysteme nicht genügend getestet würden. Das
+    Produktionssysteme nicht genügend getestet würden, gestartet. Das
     Team besteht nun aus einer Hauptgruppe von Entwicklern
     mit einem guten Verständnis der PHP Codebasis. Diese
     Entwickler stecken eine Menge ihrer Zeit in das auffinden
@@ -230,28 +276,28 @@
      und begann zu experimentieren. Meine Hauptvorlage war die PyGTK
      Implementierung, denn sie war von den Leistungsmerkmalen her
      ziemlich komplett, und hatte eine nette objektorientierte
-     Schnittstelle. James Henstridge, der Autor von PyGtk, hatte
-     in diesen ersten Schritten immer hilfreichen Rat.
+     Schnittstelle. James Henstridge, der Autor von PyGtk, stand
+     bei diesen ersten Schritten mit hilfreichen Rat zur Seite.
     </para>
     <para>
      Die Schnittstellen zu all den Gtk+ Funktionen per Hand zu schreiben
      kam nicht in Frage, und so griff ich die Idee eines Code Generators
      auf, ähnlich wie es PyGTK tat. Der Code Generator ist ein PHP Programm,
-     das eine Reihe von .defs Dateien mit den Gtk+ Klassen, Konstanten und
-     Information über Methoden  liest, und danach C Code generiert, der PHP
+     das eine Reihe von <filename>.defs</filename> Dateien mit den Gtk+ Klassen, Konstanten und
+     Information über Methoden liest, und danach C Code generiert, der PHP
      mit ihnen verbindet. Was nicht automatisch generiert werden kann, wird
-     händisch in eine .overrides Datei geschrieben.
+     händisch in eine <filename>.overrides</filename> Datei geschrieben.
     </para>
     <para>
      Die Arbeit an dem Code Generator und der Infrastruktur dauerte einige
      Zeit, da ich im Herbst 2000 nur wenig Zeit für die Arbeit an PHP-GTK
-     erübrigen konnte. Nachdem ich PHP-GTK Frank Kronman gezeigt hatte
+     erübrigen konnte. Nachdem ich PHP-GTK Frank Kromann gezeigt hatte,
      bekam er Interesse, und begann mir bei der Arbeit am Code Generator
      und der Win32 Implementierung zu helfen. Es war richtig aufregend,
      als wir das erste Hello World Programm schrieben und laufen ließen.
      Es dauerte noch einige Monate, bis wir das Projekt in einen
      vorzeigbaren Zustand brachten und am 1. März 2001 die erste Version
-     freigeben konnten. Die Geschichte schlug prompt SlashDot.
+     freigeben konnten. Die Geschichte schlug prompt bei SlashDot ein.
     </para>
     <para>
      In dem Gefühl, dass PHP-GTK umfangreich werden könnte, habe ich
@@ -273,7 +319,7 @@
  <sect1 xml:id="history.php.books">
   <title>Bücher über PHP</title>
   <para>
-   Seit PHP gewachsen ist, wurde auch begonnen, es als weltweit
+   Mit dem Wachsen von PHP, wurde es auch zunehmend als weltweit
    populäre Entwicklungsplattform anzuerkennen. Eine der
    Interessantesten Arten dies zu sehen war, die im Laufe der
    Jahre erscheinenden Bücher über PHP zu beobachten.
@@ -280,26 +326,27 @@
   </para>
   <para>
    Unseres Wissens nach was das erste Buch über PHP 'PHP - tvorba
-   interaktivních internetových aplikací', ein im im April 1999
+   interaktivních internetových aplikací' (<emphasis>PHP
+   - Creating Interactive Internet Applications</emphasis>), ein im im April 1999
    erschienenes, von Jirka Kosek geschriebenes tschechisches Buch.
    Ein Monat später folgte ein von Egon Schmid, Christian Cartus
    und Richard Blume verfasstes deutsches Buch. Das erste
    englischsprachige Buch über PHP wurde kurz danach veröffentlicht,
-   es war 'Core PHP Programming' von Leon Atkinson. Beide Bücher
-   deckten PHP 3.0 ab.
+   es war 'Core PHP Programming' von Leon Atkinson. Diese Bücher
+   behandelten PHP 3.0.
   </para>
   <para>
    Nachdem diese Bücher die ersten ihrer Art waren, folgte schnell
    eine große Anzahl Bücher von einer Menge Autoren und Verlegern.
-   Es gibt über 40 englischsprachige Bücher, 50 Bücher in Deutsch,
-   und über 20 Bücher in Französisch! Weiters gibt es Bücher über
-   PHP in vielen anderen Sprachen, wie Spanisch, Koreanisch,
+   Es gibt über 400 englischsprachige Bücher, über 100 Bücher in Deutsch,
+   und über 50 Bücher in Französisch oder Spanisch! Weiterhin gibt es Bücher über
+   PHP in vielen anderen Sprachen, wie Koreanisch,
    Japanisch und Hebräisch.
   </para>
   <para>
    Diese große Anzahl von Büchern, die von verschiedenen Autoren
    geschrieben, und vielen Verlegern veröffentlicht wurden, sowie
-   deren Verfügbarkeit in so vielen Sprachen sind ein guter Beweis
+   deren Verfügbarkeit in so vielen Sprachen sind ein guter Beleg
    für den weltweiten Erfolg von PHP.
   </para>
  </sect1>
@@ -316,7 +363,7 @@
   <para>
    Artikel über PHP erschienen in Dr. Dobbs, Linux Enterprise,
    Linux Magazine und vielen mehr. Artikel über die Migration
-   von ASP-basierten Applikationen nach PHP unter Windows tauchten
+   von ASP-basierten Applikationen nach PHP unter Windows tauchen
    sogar in <productname>Microsoft</productname>'s eigenem
    <acronym>MSDN</acronym> auf!
   </para>

Modified: phpdoc/de/trunk/appendices/tokens.xml
===================================================================
--- phpdoc/de/trunk/appendices/tokens.xml	2018-04-16 20:57:14 UTC (rev 344678)
+++ phpdoc/de/trunk/appendices/tokens.xml	2018-04-16 21:06:12 UTC (rev 344679)
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- $Revision$ -->
-<!-- EN-Revision: n/a Maintainer: hholzgra  Status: working -->
+<!-- EN-Revision: 344475 Maintainer: nobody Status: ready -->
+
 <appendix xml:id="tokens" xmlns="http://docbook.org/ns/docbook">
  <title>Liste der Parsertoken</title>
  <para>
@@ -10,10 +11,30 @@
   aus.
  </para>
  <para>
-  You're supposed to know what T_SR means. For everybody who doesn't
-  know that, here is a table with those identifiers, PHP-syntax and
-  references to the appropriate places in the manual.
+  Ein Entwickler sollte wissen, was T_SR bedeutet. Für all diejenigen, die das
+  nicht wissen, wird hier eine Tabelle mit diesen Bezeichnern, der PHP-Syntax
+  und Verweisen zu den entsprechenden Stellen im Handbuch aufgeführt.
  </para>
+
+ <note>
+  <title>Verwendung der T_* Konstanten</title>
+  <para>
+   Alle Token, die weiter unten aufgeführt werden, sind ebenfalls als PHP
+   Konstanten verfügbar. Ihr Wert wird basierend auf der zugrundeliegenden
+   Parser-Infrastruktur von PHP automatisch festgelegt. Das bedeutet, dass sich
+   der konkrete Wert eines Tokens zwischen zwei PHP-Versionen ändern kann.
+   Beispielsweise ist die <constant>T_FILE</constant> Konstante in PHP 5.3
+   gleich <literal>365</literal>, wohingegen der selbe Wert in PHP 5.4
+   <constant>T_TRAIT</constant> entspricht. Daher sollte sich Code niemals
+   direkt auf die Original-Werte, die einer PHP-Version X.Y.Z entnommen wurden,
+   verlassen, damit eine gewisse Kompatibilität über mehrere PHP-Version
+   gewährleistet ist. Statt dessen sollte der Code benutzerdefinierte Werte
+   (unter Verwendung großer Zahlen wie <literal>10000</literal>), und eine
+   angebrachte Strategie, die mit allen PHP-Versionen und T_* Werten
+   funktioniert, verwenden.
+  </para>
+ </note>
+
  <table>
   <title>Token</title>
   <tgroup cols="3">
@@ -26,673 +47,747 @@
    </thead>
    <tbody>
     <row>
-     <entry>T_ABSTRACT</entry>
+     <entry><constant>T_ABSTRACT</constant></entry>
      <entry>abstract</entry>
-     <entry><xref linkend="language.oop5.abstract"/> (verfügbar ab PHP 5.0.0)</entry>
+     <entry><xref linkend="language.oop5.abstract"/></entry>
     </row>
     <row>
-     <entry>T_AND_EQUAL</entry>
+     <entry><constant>T_AND_EQUAL</constant></entry>
      <entry>&amp;=</entry>
      <entry><link linkend="language.operators.assignment">Zuweisungsoperatoren</link></entry>
     </row>
     <row>
-     <entry>T_ARRAY</entry>
+     <entry><constant>T_ARRAY</constant></entry>
      <entry>array()</entry>
      <entry><function>array</function>, <link
-     linkend="language.types.array.syntax">array syntax</link></entry>
+     linkend="language.types.array.syntax">Arraysyntax</link></entry>
     </row>
     <row>
-     <entry>T_ARRAY_CAST</entry>
+     <entry><constant>T_ARRAY_CAST</constant></entry>
      <entry>(array)</entry>
-     <entry><link linkend="language.types.typecasting">type-casting</link></entry>
+     <entry><link linkend="language.types.typecasting">Typumwandlung</link></entry>
     </row>
      <row>
-     <entry>T_AS</entry>
+     <entry><constant>T_AS</constant></entry>
      <entry>as</entry>
      <entry><link linkend="control-structures.foreach">foreach</link></entry>
     </row>
     <row>
-     <entry>T_BAD_CHARACTER</entry>
+     <entry><constant>T_BAD_CHARACTER</constant></entry>
      <entry></entry>
      <entry>Alle Zeichen unterhalb von ASCII 32 mit Ausnahme von \t (0x09), \n (0x0a) und \r (0x0d)</entry>
     </row>
     <row>
-     <entry>T_BOOLEAN_AND</entry>
+     <entry><constant>T_BOOLEAN_AND</constant></entry>
      <entry>&amp;&amp;</entry>
      <entry><link linkend="language.operators.logical">Logische Operatoren</link></entry>
     </row>
     <row>
-     <entry>T_BOOLEAN_OR</entry>
+     <entry><constant>T_BOOLEAN_OR</constant></entry>
      <entry>||</entry>
      <entry><link linkend="language.operators.logical">Logische Operatoren</link></entry>
     </row>
     <row>
-     <entry>T_BOOL_CAST</entry>
+     <entry><constant>T_BOOL_CAST</constant></entry>
      <entry>(bool) or (boolean)</entry>
-     <entry><link linkend="language.types.typecasting">type-casting</link></entry>
+     <entry><link linkend="language.types.typecasting">Typumwandlung</link></entry>
     </row>
     <row>
-     <entry>T_BREAK</entry>
+     <entry><constant>T_BREAK</constant></entry>
      <entry>break</entry>
      <entry><link linkend="control-structures.break">break</link></entry>
     </row>
     <row>
-     <entry>T_CASE</entry>
+     <entry><constant>T_CALLABLE</constant></entry>
+     <entry>callable</entry>
+     <entry><link linkend="language.types.callable">callable</link></entry>
+    </row>
+    <row>
+     <entry><constant>T_CASE</constant></entry>
      <entry>case</entry>
      <entry><link linkend="control-structures.switch">switch</link></entry>
     </row>
     <row>
-     <entry>T_CATCH</entry>
+     <entry><constant>T_CATCH</constant></entry>
      <entry>catch</entry>
-     <entry><xref linkend="language.exceptions"/> (verfügbar ab PHP 5.0.0)</entry>
+     <entry><xref linkend="language.exceptions"/></entry>
     </row>
     <row>
-     <entry>T_CHARACTER</entry>
+     <entry><constant>T_CHARACTER</constant></entry>
      <entry></entry>
-     <entry></entry>
+     <entry>nicht mehr verwendet</entry>
     </row>
     <row>
-     <entry>T_CLASS</entry>
+     <entry><constant>T_CLASS</constant></entry>
      <entry>class</entry>
      <entry><link linkend="language.oop5">Klassen und Objekte</link></entry>
     </row>
     <row>
-     <entry>T_CLASS_C</entry>
+     <entry><constant>T_CLASS_C</constant></entry>
      <entry>__CLASS__</entry>
      <entry>
       <link linkend="language.constants.predefined">Magische Konstanten</link>
-      (verfügbar ab PHP 4.3.0)
      </entry>
     </row>
     <row>
-     <entry>T_CLONE</entry>
+     <entry><constant>T_CLONE</constant></entry>
      <entry>clone</entry>
      <entry>
       <link linkend="language.oop5">Klassen und Objekte</link>
-      (verfügbar ab PHP 5.0.0)
      </entry>
     </row>
     <row>
-     <entry>T_CLOSE_TAG</entry>
-     <entry>?> oder %></entry>
-     <entry></entry>
+     <entry><constant>T_CLOSE_TAG</constant></entry>
+     <entry>?&gt; oder %&gt;</entry>
+     <entry><link linkend="language.basic-syntax.phpmode">Den HTML-Bereich der Datei verlassen</link></entry>
     </row>
     <row>
-     <entry>T_COMMENT</entry>
-     <entry>// oder #, und /* */ in PHP 5</entry>
+     <entry><constant>T_COALESCE</constant></entry>
+     <entry>??</entry>
+     <entry>
+      <link linkend="language.operators.comparison.coalesce">Vergleichsoperatoren</link>
+      (verfügbar ab PHP 7.0.0)
+     </entry>
+    </row>
+    <row>
+     <entry><constant>T_COMMENT</constant></entry>
+     <entry>// oder #, und /* */</entry>
      <entry><link linkend="language.basic-syntax.comments">Kommentare</link></entry>
     </row>
     <row>
-     <entry>T_CONCAT_EQUAL</entry>
+     <entry><constant>T_CONCAT_EQUAL</constant></entry>
      <entry>.=</entry>
      <entry><link linkend="language.operators.assignment">Zuweisungsoperatoren</link></entry>
     </row>
     <row>
-     <entry>T_CONST</entry>
+     <entry><constant>T_CONST</constant></entry>
      <entry>const</entry>
-     <entry></entry>
+     <entry><link linkend="language.constants">Klassenkonstanten</link></entry>
     </row>
     <row>
-     <entry>T_CONSTANT_ENCAPSED_STRING</entry>
+     <entry><constant>T_CONSTANT_ENCAPSED_STRING</constant></entry>
      <entry>"foo" oder 'bar'</entry>
      <entry><link linkend="language.types.string.syntax">Stringsyntax</link></entry>
     </row>
     <row>
-     <entry>T_CONTINUE</entry>
+     <entry><constant>T_CONTINUE</constant></entry>
      <entry>continue</entry>
-     <entry></entry>
+     <entry><link linkend="control-structures.continue">continue</link></entry>
     </row>
     <row>
-     <entry>T_CURLY_OPEN</entry>
-     <entry></entry>
-     <entry></entry>
+     <entry><constant>T_CURLY_OPEN</constant></entry>
+     <entry>{$</entry>
+     <entry><link linkend="language.types.string.parsing.complex">komplexe Variableninterpolationssyntax</link></entry>
     </row>
     <row>
-     <entry>T_DEC</entry>
+     <entry>T_D<constant>T_DEC</constant>EC</entry>
      <entry>--</entry>
      <entry><link
      linkend="language.operators.increment">Inkrement- bzw. Dekrementoperatoren</link></entry>
     </row>
     <row>
-     <entry>T_DECLARE</entry>
+     <entry><constant>T_DECLARE</constant></entry>
      <entry>declare</entry>
      <entry><link linkend="control-structures.declare">declare</link></entry>
     </row>
     <row>
-     <entry>T_DEFAULT</entry>
+     <entry><constant>T_DEFAULT</constant></entry>
      <entry>default</entry>
      <entry><link linkend="control-structures.switch">switch</link></entry>
     </row>
     <row>
-     <entry>T_DIR</entry>
+     <entry><constant>T_DIR</constant></entry>
      <entry>__DIR__</entry>
      <entry><link linkend="language.constants.predefined">Magische Konstanten</link>
        (verfügbar ab PHP 5.3.0)</entry>
     </row>
     <row>
-     <entry>T_DIV_EQUAL</entry>
+     <entry><constant>T_DIV_EQUAL</constant></entry>
      <entry>/=</entry>
      <entry><link linkend="language.operators.assignment">Zuweisungsoperatoren</link></entry>
     </row>
     <row>
-     <entry>T_DNUMBER</entry>
+     <entry><constant>T_DNUMBER</constant></entry>
      <entry>0.12, etc</entry>
      <entry><link linkend="language.types.float">Fließkommawerte</link></entry>
     </row>
     <row>
-     <entry>T_DOC_COMMENT</entry>
+     <entry><constant>T_DOC_COMMENT</constant></entry>
      <entry>/** */</entry>
      <entry>
       <link linkend="language.basic-syntax.comments">Kommentare im PHPDoc Stil</link>
-      (verfügbar ab PHP 5.0.0)
      </entry>
     </row>
     <row>
-     <entry>T_DO</entry>
+     <entry><constant>T_DO</constant></entry>
      <entry>do</entry>
      <entry><link linkend="control-structures.do.while">do..while</link></entry>
     </row>
     <row>
-     <entry>T_DOLLAR_OPEN_CURLY_BRACES</entry>
+     <entry><constant>T_DOLLAR_OPEN_CURLY_BRACES</constant></entry>
      <entry>${</entry>
-     <entry><link linkend="language.types.string.parsing.complex">complex
-     variable parsed syntax</link></entry>
+     <entry><link linkend="language.types.string.parsing.complex">komplexe Variableninterpolationssyntax</link></entry>
     </row>
     <row>
-     <entry>T_DOUBLE_ARROW</entry>
+     <entry><constant>T_DOUBLE_ARROW</constant></entry>
      <entry>=&gt;</entry>
      <entry><link linkend="language.types.array.syntax">Arraysyntax</link></entry>
     </row>
     <row>
-     <entry>T_DOUBLE_CAST</entry>
+     <entry><constant>T_DOUBLE_CAST</constant></entry>
      <entry>(real), (double) or (float)</entry>
      <entry><link linkend="language.types.typecasting">Typumwandlung</link></entry>
     </row>
     <row>
-     <entry>T_DOUBLE_COLON</entry>
+     <entry><constant>T_DOUBLE_COLON</constant></entry>
      <entry>::</entry>
      <entry>Siehe <constant>T_PAAMAYIM_NEKUDOTAYIM</constant> weiter unten</entry>
     </row>
     <row>
-     <entry>T_ECHO</entry>
+     <entry><constant>T_ECHO</constant></entry>
      <entry>echo</entry>
      <entry><function>echo</function></entry>
     </row>
     <row>
-     <entry>T_ELSE</entry>
+     <entry><constant>T_ELLIPSIS</constant></entry>
+     <entry>...</entry>
+     <entry>
+      <link linkend="functions.variable-arg-list.new">Funktionsargumente</link>
+      (verfügbar ab PHP 5.6.0)
+     </entry>
+    </row>
+    <row>
+     <entry><constant>T_ELSE</constant></entry>
      <entry>else</entry>
      <entry><link linkend="control-structures.else">else</link></entry>
     </row>
     <row>
-     <entry>T_ELSEIF</entry>
+     <entry><constant>T_ELSEIF</constant></entry>
      <entry>elseif</entry>
      <entry><link linkend="control-structures.elseif">elseif</link></entry>
     </row>
     <row>
-     <entry>T_EMPTY</entry>
+     <entry><constant>T_EMPTY</constant></entry>
      <entry>empty</entry>
      <entry><function>empty</function></entry>
     </row>
     <row>
-     <entry>T_ENCAPSED_AND_WHITESPACE</entry>
-     <entry></entry>
-     <entry></entry>
+     <entry><constant>T_ENCAPSED_AND_WHITESPACE</constant></entry>
+     <entry>" $a"</entry>
+     <entry><link linkend="language.types.string.parsing">Konstanter Teil einer
+     Zeichenkette mit Variablen</link></entry>
     </row>
     <row>
-     <entry>T_ENDDECLARE</entry>
+     <entry><constant>T_ENDDECLARE</constant></entry>
      <entry>enddeclare</entry>
      <entry><link linkend="control-structures.declare">declare</link>, <link
      linkend="control-structures.alternative-syntax">Alternative Syntax</link></entry>
     </row>
     <row>
-     <entry>T_ENDFOR</entry>
+     <entry><constant>T_ENDFOR</constant></entry>
      <entry>endfor</entry>
      <entry><link linkend="control-structures.for">for</link>, <link
      linkend="control-structures.alternative-syntax">Alternative Syntax</link></entry>
     </row>
     <row>
-     <entry>T_ENDFOREACH</entry>
+     <entry><constant>T_ENDFOREACH</constant></entry>
      <entry>endforeach</entry>
      <entry><link linkend="control-structures.foreach">foreach</link>, <link
      linkend="control-structures.alternative-syntax">Alternative Syntax</link></entry>
     </row>
     <row>
-     <entry>T_ENDIF</entry>
+     <entry><constant>T_ENDIF</constant></entry>
      <entry>endif</entry>
      <entry><link linkend="control-structures.if">if</link>, <link
      linkend="control-structures.alternative-syntax">Alternative Syntax</link></entry>
     </row>
     <row>
-     <entry>T_ENDSWITCH</entry>
+     <entry><constant>T_ENDSWITCH</constant></entry>
      <entry>endswitch</entry>
      <entry><link linkend="control-structures.switch">switch</link>, <link
      linkend="control-structures.alternative-syntax">Alternative Syntax</link></entry>
     </row>
     <row>
-     <entry>T_ENDWHILE</entry>
+     <entry><constant>T_ENDWHILE</constant></entry>
      <entry>endwhile</entry>
      <entry><link linkend="control-structures.while">while</link>, <link
      linkend="control-structures.alternative-syntax">Alternative Syntax</link></entry>
     </row>
     <row>
-     <entry>T_END_HEREDOC</entry>
+     <entry><constant>T_END_HEREDOC</constant></entry>
      <entry></entry>
-     <entry><link linkend="language.types.string.syntax.heredoc">'heredoc'-Syntax</link></entry>
+     <entry><link linkend="language.types.string.syntax.heredoc">Heredoc-Syntax</link></entry>
     </row>
     <row>
-     <entry>T_EVAL</entry>
+     <entry><constant>T_EVAL</constant></entry>
      <entry>eval()</entry>
      <entry><function>eval</function></entry>
     </row>
     <row>
-     <entry>T_EXIT</entry>
+     <entry><constant>T_EXIT</constant></entry>
      <entry>exit oder die</entry>
      <entry><function>exit</function>, <function>die</function></entry>
     </row>
     <row>
-     <entry>T_EXTENDS</entry>
+     <entry><constant>T_EXTENDS</constant></entry>
      <entry>extends</entry>
      <entry><link linkend="language.oop5.basic.extends">extends</link>, <link
      linkend="language.oop5">Klassen und Objekte</link></entry>
     </row>
     <row>
-     <entry>T_FILE</entry>
+     <entry><constant>T_FILE</constant></entry>
      <entry>__FILE__</entry>
      <entry><link linkend="language.constants.predefined">Magische Konstanten</link></entry>
     </row>
     <row>
-     <entry>T_FINAL</entry>
+     <entry><constant>T_FINAL</constant></entry>
      <entry>final</entry>
-     <entry><xref linkend="language.oop5.final"/> (verfügbar ab PHP 5.0.0)</entry>
+     <entry><xref linkend="language.oop5.final"/></entry>
     </row>
     <row>
-     <entry>T_FOR</entry>
+     <entry><constant>T_FINALLY</constant></entry>
+     <entry>finally</entry>
+     <entry><xref linkend="language.exceptions"/> (verfügbar ab PHP 5.5.0)</entry>
+    </row>
+    <row>
+     <entry><constant>T_FOR</constant></entry>
      <entry>for</entry>
      <entry><link linkend="control-structures.for">for</link></entry>
     </row>
     <row>
-     <entry>T_FOREACH</entry>
+     <entry><constant>T_FOREACH</constant></entry>
      <entry>foreach</entry>
      <entry><link linkend="control-structures.foreach">foreach</link></entry>
     </row>
     <row>
-     <entry>T_FUNCTION</entry>
+     <entry><constant>T_FUNCTION</constant></entry>
      <entry>function oder cfunction</entry>
      <entry><link linkend="language.functions">Funktionen</link></entry>
     </row>
     <row>
-     <entry>T_FUNC_C</entry>
+     <entry><constant>T_FUNC_C</constant></entry>
      <entry>__FUNCTION__</entry>
      <entry>
       <link linkend="language.constants.predefined">Magische Konstanten</link>
-      (verfügbar ab PHP 4.3.0)
      </entry>
     </row>
     <row>
-     <entry>T_GLOBAL</entry>
+     <entry><constant>T_GLOBAL</constant></entry>
      <entry>global</entry>
      <entry><link linkend="language.variables.scope">Geltungsbereich von Variablen</link></entry>
     </row>
     <row>
-     <entry>T_GOTO</entry>
+     <entry><constant>T_GOTO</constant></entry>
      <entry>goto</entry>
-     <entry>Undokumentiert (verfügbar ab PHP 5.3.0)</entry>
+     <entry><link linkend="control-structures.goto">goto</link>(verfügbar ab PHP 5.3.0)</entry>
     </row>
     <row>
-     <entry>T_HALT_COMPILER</entry>
+     <entry><constant>T_HALT_COMPILER</constant></entry>
      <entry>__halt_compiler()</entry>
      <entry><xref linkend="function.halt-compiler"/> (verfügbar ab PHP 5.1.0)</entry>
     </row>
     <row>
-     <entry>T_IF</entry>
+     <entry><constant>T_IF</constant></entry>
      <entry>if</entry>
      <entry><link linkend="control-structures.if">if</link></entry>
     </row>
     <row>
-     <entry>T_IMPLEMENTS</entry>
+     <entry><constant>T_IMPLEMENTS</constant></entry>
      <entry>implements</entry>
-     <entry><xref linkend="language.oop5.interfaces"/> (verfügbar ab PHP 5.0.0)</entry>
+     <entry><xref linkend="language.oop5.interfaces"/></entry>
     </row>
     <row>
-     <entry>T_INC</entry>
+     <entry><constant>T_INC</constant></entry>
      <entry>++</entry>
      <entry><link
      linkend="language.operators.increment">Inkrement- bzw. Dekrementoperatoren</link></entry>
     </row>
     <row>
-     <entry>T_INCLUDE</entry>
+     <entry><constant>T_INCLUDE</constant></entry>
      <entry>include()</entry>
      <entry><function>include</function></entry>
     </row>
     <row>
-     <entry>T_INCLUDE_ONCE</entry>
+     <entry><constant>T_INCLUDE_ONCE</constant></entry>
      <entry>include_once()</entry>
      <entry><function>include_once</function></entry>
     </row>
     <row>
-     <entry>T_INLINE_HTML</entry>
+     <entry><constant>T_INLINE_HTML</constant></entry>
      <entry></entry>
-     <entry></entry>
+     <entry><link linkend="language.basic-syntax.phpmode">Text außerhalb von PHP</link></entry>
     </row>
     <row>
-     <entry>T_INSTANCEOF</entry>
+     <entry><constant>T_INSTANCEOF</constant></entry>
      <entry>instanceof</entry>
      <entry>
-      <link linkend="language.operators.type">type operators</link>
-      (verfügbar ab PHP 5.0.0)
+      <link linkend="language.operators.type">Typoperatoren</link>
      </entry>
     </row>
     <row>
-     <entry>T_INT_CAST</entry>
+     <entry><constant>T_INSTEADOF</constant></entry>
+     <entry>insteadof</entry>
+     <entry><xref linkend="language.oop5.traits"/> (verfügbar ab PHP 5.4.0)</entry>
+    </row>
+    <row>
+     <entry><constant>T_INT_CAST</constant></entry>
      <entry>(int) oder (integer)</entry>
      <entry><link linkend="language.types.typecasting">Typumwandlung</link></entry>
     </row>
     <row>
-     <entry>T_INTERFACE</entry>
+     <entry><constant>T_INTERFACE</constant></entry>
      <entry>interface</entry>
-     <entry><xref linkend="language.oop5.interfaces"/> (verfügbar ab PHP 5.0.0)</entry>
+     <entry><xref linkend="language.oop5.interfaces"/></entry>
     </row>
     <row>
-     <entry>T_ISSET</entry>
+     <entry><constant>T_ISSET</constant></entry>
      <entry>isset()</entry>
      <entry><function>isset</function></entry>
     </row>
     <row>
-     <entry>T_IS_EQUAL</entry>
+     <entry><constant>T_IS_EQUAL</constant></entry>
      <entry>==</entry>
-     <entry><link linkend="language.operators.comparison">Vergleichsoperator</link></entry>
+     <entry><link linkend="language.operators.comparison">Vergleichsoperatoren</link></entry>
     </row>
     <row>
-     <entry>T_IS_GREATER_OR_EQUAL</entry>
+     <entry><constant>T_IS_GREATER_OR_EQUAL</constant></entry>
      <entry>&gt;=</entry>
-     <entry><link linkend="language.operators.comparison">Vergleichsoperator</link></entry>
+     <entry><link linkend="language.operators.comparison">Vergleichsoperatoren</link></entry>
     </row>
     <row>
-     <entry>T_IS_IDENTICAL</entry>
+     <entry><constant>T_IS_IDENTICAL</constant></entry>
      <entry>===</entry>
-     <entry><link linkend="language.operators.comparison">Vergleichsoperator</link></entry>
+     <entry><link linkend="language.operators.comparison">Vergleichsoperatoren</link></entry>
     </row>
     <row>
-     <entry>T_IS_NOT_EQUAL</entry>
+     <entry><constant>T_IS_NOT_EQUAL</constant></entry>
      <entry>!= or &lt;&gt;</entry>
-     <entry><link linkend="language.operators.comparison">Vergleichsoperator</link></entry>
+     <entry><link linkend="language.operators.comparison">Vergleichsoperatoren</link></entry>
     </row>
     <row>
-     <entry>T_IS_NOT_IDENTICAL</entry>
+     <entry><constant>T_IS_NOT_IDENTICAL</constant></entry>
      <entry>!==</entry>
-     <entry><link linkend="language.operators.comparison">Vergleichsoperator</link></entry>
+     <entry><link linkend="language.operators.comparison">Vergleichsoperatoren</link></entry>
     </row>
     <row>
-     <entry>T_IS_SMALLER_OR_EQUAL</entry>
+     <entry><constant>T_IS_SMALLER_OR_EQUAL</constant></entry>
      <entry>&lt;=</entry>
-     <entry><link linkend="language.operators.comparison">Vergleichsoperator</link></entry>
+     <entry><link linkend="language.operators.comparison">Vergleichsoperatoren</link></entry>
     </row>
     <row>
-     <entry>T_LINE</entry>
+     <entry><constant>T_SPACESHIP</constant></entry>
+     <entry>&lt;=&gt;</entry>
+     <entry>
+      <link linkend="language.operators.comparison">Vergleichsoperatoren</link>
+      (verfügbar ab PHP 7.0.0)
+     </entry>
+    </row>
+    <row>
+     <entry><constant>T_LINE</constant></entry>
      <entry>__LINE__</entry>
      <entry><link linkend="language.constants.predefined">Magische Konstanten</link></entry>
     </row>
     <row>
-     <entry>T_LIST</entry>
+     <entry><constant>T_LIST</constant></entry>
      <entry>list()</entry>
      <entry><function>list</function></entry>
     </row>
     <row>
-     <entry>T_LNUMBER</entry>
+     <entry><constant>T_LNUMBER</constant></entry>
      <entry>123, 012, 0x1ac, etc</entry>
      <entry><link linkend="language.types.integer">Integerwerte</link></entry>
     </row>
     <row>
-     <entry>T_LOGICAL_AND</entry>
+     <entry><constant>T_LOGICAL_AND</constant></entry>
      <entry>and</entry>
      <entry><link linkend="language.operators.logical">Logische Operatoren</link></entry>
     </row>
     <row>
-     <entry>T_LOGICAL_OR</entry>
+     <entry><constant>T_LOGICAL_OR</constant></entry>
      <entry>or</entry>
      <entry><link linkend="language.operators.logical">Logische Operatoren</link></entry>
     </row>
     <row>
-     <entry>T_LOGICAL_XOR</entry>
+     <entry><constant>T_LOGICAL_XOR</constant></entry>
      <entry>xor</entry>
      <entry><link linkend="language.operators.logical">Logische Operatoren</link></entry>
     </row>
     <row>
-     <entry>T_METHOD_C</entry>
+     <entry><constant>T_METHOD_C</constant></entry>
      <entry>__METHOD__</entry>
      <entry>
       <link linkend="language.constants.predefined">Magische Konstanten</link>
-      (verfügbar ab PHP 5.0.0)
      </entry>
     </row>
     <row>
-     <entry>T_MINUS_EQUAL</entry>
+     <entry><constant>T_MINUS_EQUAL</constant></entry>
      <entry>-=</entry>
      <entry><link linkend="language.operators.assignment">Zuweisungsoperatoren</link></entry>
     </row>
     <row>
-     <entry>T_ML_COMMENT</entry>
-     <entry>/* and */</entry>
-     <entry><link linkend="language.basic-syntax.comments">Kommentare</link>
-      (nur PHP 4)</entry>
-    </row>
-    <row>
-     <entry>T_MOD_EQUAL</entry>
+     <entry><constant>T_MOD_EQUAL</constant></entry>
      <entry>%=</entry>
      <entry><link linkend="language.operators.assignment">Zuweisungsoperatoren</link></entry>
     </row>
     <row>
-     <entry>T_MUL_EQUAL</entry>
+     <entry><constant>T_MUL_EQUAL</constant></entry>
      <entry>*=</entry>
      <entry><link linkend="language.operators.assignment">Zuweisungsoperatoren</link></entry>
     </row>
     <row>
-     <entry>T_NS_C</entry>
+     <entry><constant>T_NAMESPACE</constant></entry>
+     <entry>namespace</entry>
+     <entry>
+      <link linkend="language.namespaces">Namensräume</link> (verfügbar ab PHP
+      5.3.0)
+     </entry>
+    </row>
+    <row>
+     <entry><constant>T_NS_C</constant></entry>
      <entry>__NAMESPACE__</entry>
      <entry>
-      <link linkend="language.namespaces">namespaces</link>.
-      Auch definiert als <constant>T_NAMESPACE</constant>
+      <link linkend="language.namespaces">Namensräume</link>.
+     </entry>
+    </row>
+    <row>
+     <entry><constant>T_NS_SEPARATOR</constant></entry>
+     <entry>\</entry>
+     <entry>
+      <link linkend="language.namespaces">Namensräume</link>
       (verfügbar ab PHP 5.3.0)
      </entry>
     </row>
     <row>
-     <entry>T_NEW</entry>
+     <entry><constant>T_NEW</constant></entry>
      <entry>new</entry>
      <entry><link linkend="language.oop5">Klassen und Objekte</link></entry>
     </row>
     <row>
-     <entry>T_NUM_STRING</entry>
-     <entry></entry>
-     <entry></entry>
+     <entry><constant>T_NUM_STRING</constant></entry>
+     <entry>"$a[0]"</entry>
+     <entry><link linkend="language.types.string.parsing">Numerischer Array-Index
+     innerhalb einer Zeichenkette</link></entry>
     </row>
     <row>
-     <entry>T_OBJECT_CAST</entry>
+     <entry><constant>T_OBJECT_CAST</constant></entry>
      <entry>(object)</entry>
      <entry><link linkend="language.types.typecasting">Typumwandlung</link></entry>
     </row>
     <row>
-     <entry>T_OBJECT_OPERATOR</entry>
-     <entry>-></entry>
+     <entry><constant>T_OBJECT_OPERATOR</constant></entry>
+     <entry>-&gt;</entry>
      <entry><link linkend="language.oop5">Klassen und Objekte</link></entry>
     </row>
     <row>
-     <entry>T_OLD_FUNCTION</entry>
-     <entry>old_function</entry>
-     <entry></entry>
-    </row>
-    <row>
-     <entry>T_OPEN_TAG</entry>
+     <entry><constant>T_OPEN_TAG</constant></entry>
      <entry>&lt;?php, &lt;? or &lt;%</entry>
      <entry><link linkend="language.basic-syntax.phpmode">HTML-Bereich der Datei verlassen</link></entry>
     </row>
     <row>
-     <entry>T_OPEN_TAG_WITH_ECHO</entry>
+     <entry><constant>T_OPEN_TAG_WITH_ECHO</constant></entry>
      <entry>&lt;?= or &lt;%=</entry>
      <entry><link linkend="language.basic-syntax.phpmode">HTML-Bereich der Datei verlassen</link></entry>
     </row>
     <row>
-     <entry>T_OR_EQUAL</entry>
+     <entry><constant>T_OR_EQUAL</constant></entry>
      <entry>|=</entry>
      <entry><link linkend="language.operators.assignment">Zuweisungsoperatoren</link></entry>
     </row>
     <row>
-     <entry>T_PAAMAYIM_NEKUDOTAYIM</entry>
+     <entry><constant>T_PAAMAYIM_NEKUDOTAYIM</constant></entry>
      <entry>::</entry>
      <entry><link linkend="language.oop5.paamayim-nekudotayim">::</link>. Auch definiert als
       <constant>T_DOUBLE_COLON</constant>.</entry>
     </row>
     <row>
-     <entry>T_PLUS_EQUAL</entry>
+     <entry><constant>T_PLUS_EQUAL</constant></entry>
      <entry>+=</entry>
      <entry><link linkend="language.operators.assignment">Zuweisungsoperatoren</link></entry>
     </row>
     <row>
-     <entry>T_PRINT</entry>
+     <entry><constant>T_POW</constant></entry>
+     <entry>**</entry>
+     <entry>
+      <link linkend="language.operators.arithmetic">Arithmetische Operatoren</link>
+      (verfügbar ab PHP 5.6.0)
+     </entry>
+    </row>
+    <row>
+     <entry><constant>T_POW_EQUAL</constant></entry>
+     <entry>**=</entry>
+     <entry>
+      <link linkend="language.operators.assignment">Zuweisungsoperatoren</link>
+      (verfügbar ab PHP 5.6.0)
+     </entry>
+    </row>
+    <row>
+     <entry><constant>T_PRINT</constant></entry>
      <entry>print()</entry>
      <entry><function>print</function></entry>
     </row>
     <row>
-     <entry>T_PRIVATE</entry>
+     <entry><constant>T_PRIVATE</constant></entry>
      <entry>private</entry>
      <entry>
       <link linkend="language.oop5">Klassen und Objekte</link>
-      (verfügbar ab PHP 5.0.0)
      </entry>
     </row>
     <row>
-     <entry>T_PUBLIC</entry>
+     <entry><constant>T_PUBLIC</constant></entry>
      <entry>public</entry>
      <entry>
       <link linkend="language.oop5">Klassen und Objekte</link>
-      (verfügbar ab PHP 5.0.0)
      </entry>
     </row>
     <row>
-     <entry>T_PROTECTED</entry>
+     <entry><constant>T_PROTECTED</constant></entry>
      <entry>protected</entry>
      <entry>
       <link linkend="language.oop5">Klassen und Objekte</link>
-      (verfügbar ab PHP 5.0.0)
      </entry>
     </row>
     <row>
-     <entry>T_REQUIRE</entry>
+     <entry><constant>T_REQUIRE</constant></entry>
      <entry>require()</entry>
      <entry><function>require</function></entry>
     </row>
     <row>
-     <entry>T_REQUIRE_ONCE</entry>
+     <entry><constant>T_REQUIRE_ONCE</constant></entry>
      <entry>require_once()</entry>
      <entry><function>require_once</function></entry>
     </row>
     <row>
-     <entry>T_RETURN</entry>
+     <entry><constant>T_RETURN</constant></entry>
      <entry>return</entry>
      <entry><link linkend="functions.returning-values">Rückgabe von Werten</link></entry>
     </row>
     <row>
-     <entry>T_SL</entry>
+     <entry><constant>T_SL</constant></entry>
      <entry>&lt;&lt;</entry>
      <entry><link linkend="language.operators.bitwise">Bitweise Operatoren</link></entry>
     </row>
     <row>
-     <entry>T_SL_EQUAL</entry>
+     <entry><constant>T_SL_EQUAL</constant></entry>
      <entry>&lt;&lt;=</entry>
      <entry><link linkend="language.operators.assignment">Zuweisungsoperatoren</link></entry>
     </row>
     <row>
-     <entry>T_SR</entry>
+     <entry><constant>T_SR</constant></entry>
      <entry>&gt;&gt;</entry>
      <entry><link linkend="language.operators.bitwise">Bitweise Operatoren</link></entry>
     </row>
     <row>
-     <entry>T_SR_EQUAL</entry>
+     <entry><constant>T_SR_EQUAL</constant></entry>
      <entry>&gt;&gt;=</entry>
      <entry><link linkend="language.operators.assignment">Zuweisungsoperatoren</link></entry>
     </row>
     <row>
-     <entry>T_START_HEREDOC</entry>
+     <entry><constant>T_START_HEREDOC</constant></entry>
      <entry>&lt;&lt;&lt;</entry>
-     <entry><link linkend="language.types.string.syntax.heredoc">'heredoc'-Syntax</link></entry>
+     <entry><link linkend="language.types.string.syntax.heredoc">Heredoc-Syntax</link></entry>
     </row>
     <row>
-     <entry>T_STATIC</entry>
+     <entry><constant>T_STATIC</constant></entry>
      <entry>static</entry>
      <entry><link linkend="language.variables.scope">Geltungsbereich von Variablen</link></entry>
     </row>
     <row>
-     <entry>T_STRING</entry>
-     <entry></entry>
-     <entry></entry>
+     <entry><constant>T_STRING</constant></entry>
+     <entry>parent, self, etc.</entry>
+     <entry>
+      Dabei handelt es sich um Bezeichner, z.B. Schlüsselwörter wie <literal>parent</literal> und <literal>self</literal>,
+      Funktionsnamen, Klassennamen usw.
+      Vgl. <constant>T_CONSTANT_ENCAPSED_STRING</constant>.
+     </entry>
     </row>
     <row>
-     <entry>T_STRING_CAST</entry>
+     <entry><constant>T_STRING_CAST</constant></entry>
      <entry>(string)</entry>
      <entry><link linkend="language.types.typecasting">Typumwandlung</link></entry>
     </row>
     <row>
-     <entry>T_STRING_VARNAME</entry>
-     <entry></entry>
-     <entry></entry>
+     <entry><constant>T_STRING_VARNAME</constant></entry>
+     <entry>"${a</entry>
+     <entry><link linkend="language.types.string.parsing.complex">komplexe
+     Variableninterpolationssyntax</link></entry>
     </row>
     <row>
-     <entry>T_SWITCH</entry>
+     <entry><constant>T_SWITCH</constant></entry>
      <entry>switch</entry>
      <entry><link linkend="control-structures.switch">switch</link></entry>
     </row>
     <row>
-     <entry>T_THROW</entry>
+     <entry><constant>T_THROW</constant></entry>
      <entry>throw</entry>
-     <entry><xref linkend="language.exceptions"/> (verfügbar ab PHP 5.0.0)</entry>
+     <entry><xref linkend="language.exceptions"/></entry>
     </row>
     <row>
-     <entry>T_TRY</entry>
+     <entry><constant>T_TRAIT</constant></entry>
+     <entry>trait</entry>
+     <entry><xref linkend="language.oop5.traits"/> (verfügbar ab PHP 5.4.0)</entry>
+    </row>
+    <row>
+     <entry><constant>T_TRAIT_C</constant></entry>
+     <entry>__TRAIT__</entry>
+     <entry><link linkend="constant.trait">__TRAIT__</link> (verfügbar ab PHP 5.4.0)</entry>
+    </row>
+    <row>
+     <entry><constant>T_TRY</constant></entry>
      <entry>try</entry>
-     <entry><xref linkend="language.exceptions"/> (verfügbar ab PHP 5.0.0)</entry>
+     <entry><xref linkend="language.exceptions"/></entry>
     </row>
     <row>
-     <entry>T_UNSET</entry>
+     <entry><constant>T_UNSET</constant></entry>
      <entry>unset()</entry>
      <entry><function>unset</function></entry>
     </row>
     <row>
-     <entry>T_UNSET_CAST</entry>
+     <entry><constant>T_UNSET_CAST</constant></entry>
      <entry>(unset)</entry>
-     <entry><link linkend="language.types.typecasting">Typumwandlung</link>
-     (verfügbar ab PHP 5.0.0)</entry>
+     <entry><link linkend="language.types.typecasting">Typumwandlung</link></entry>
     </row>
     <row>
-     <entry>T_USE</entry>
+     <entry><constant>T_USE</constant></entry>
      <entry>use</entry>
      <entry><link linkend="language.namespaces">Namensräume</link>
      (verfügbar ab PHP 5.3.0)</entry>
     </row>
     <row>
-     <entry>T_VAR</entry>
+     <entry><constant>T_VAR</constant></entry>
      <entry>var</entry>
      <entry><link linkend="language.oop5">Klassen und Objekte</link></entry>
     </row>
     <row>
-     <entry>T_VARIABLE</entry>
+     <entry><constant>T_VARIABLE</constant></entry>
      <entry>$foo</entry>
      <entry><link linkend="language.variables">Variablen</link></entry>
     </row>
     <row>
-     <entry>T_WHILE</entry>
+     <entry><constant>T_WHILE</constant></entry>
      <entry>while</entry>
      <entry><link linkend="control-structures.while">while</link>, <link
      linkend="control-structures.do.while">do..while</link></entry>
     </row>
     <row>
-     <entry>T_WHITESPACE</entry>
+     <entry><constant>T_WHITESPACE</constant></entry>
+     <entry>\t \r\n</entry>
      <entry></entry>
-     <entry></entry>
     </row>
     <row>
-     <entry>T_XOR_EQUAL</entry>
+     <entry><constant>T_XOR_EQUAL</constant></entry>
      <entry>^=</entry>
      <entry><link linkend="language.operators.assignment">Zuweisungsoperatoren</link></entry>
     </row>
+    <row>
+     <entry><constant>T_YIELD</constant></entry>
+     <entry>yield</entry>
+     <entry><link linkend="control-structures.yield">Generatoren</link> (verfügbar ab PHP 5.5.0)</entry>
+    </row>
+    <row>
+     <entry><constant>T_YIELD_FROM</constant></entry>
+     <entry>yield from</entry>
+     <entry><link linkend="control-structures.yield.from">Generator</link> (verfügbar ab PHP 7.0.0)</entry>
+    </row>
    </tbody>
   </tgroup>
  </table>

Modified: phpdoc/de/trunk/language/operators.xml
===================================================================
--- phpdoc/de/trunk/language/operators.xml	2018-04-16 20:57:14 UTC (rev 344678)
+++ phpdoc/de/trunk/language/operators.xml	2018-04-16 21:06:12 UTC (rev 344679)
@@ -523,6 +523,71 @@
    </para>
    </sect2>

+   <sect2 xml:id="language.operators.comparison.coalesce">
+    <title>Null Coalescing Operator</title>
+    <para>
+     Further exists the "??" (or null coalescing) operator, available as of PHP 7.
+     <example>
+      <title>Assigning a default value</title>
+      <programlisting role="php">
+<![CDATA[
+<?php
+// Example usage for: Null Coalesce Operator
+$action = $_POST['action'] ?? 'default';
+
+// The above is identical to this if/else statement
+if (isset($_POST['action'])) {
+    $action = $_POST['action'];
+} else {
+    $action = 'default';
+}
+
+?>
+]]>
+      </programlisting>
+     </example>
+     The expression <literal>(expr1) ?? (expr2)</literal> evaluates to
+     <replaceable>expr2</replaceable> if <replaceable>expr1</replaceable> is
+     &null;, and <replaceable>expr1</replaceable> otherwise.
+    </para>
+    <para>
+     In particular, this operator does not emit a notice if the left-hand side
+     value does not exist, just like <function>isset</function>. This is especially
+     useful on array keys.
+    </para>
+    <note>
+     <simpara>
+      Please note that the null coalescing operator is an expression, and that it
+      doesn't evaluate to a variable, but to the result of an expression. This
+      is important to know if you want to return a variable by reference.
+      The statement <literal>return $foo ?? $bar;</literal> in a
+      return-by-reference function will therefore not work and a warning is
+      issued.
+     </simpara>
+    </note>
+    <note>
+     <para>
+      Please note that the null coalescing operator allows for simple nesting:
+      <example>
+       <title>Nesting null coalescing operator</title>
+       <programlisting role="php">
+<![CDATA[
+<?php
+
+$foo = null;
+$bar = null;
+$baz = 1;
+$qux = 2;
+
+echo $foo ?? $bar ?? $baz ?? $qux; // outputs 1
+
+?>
+]]>
+       </programlisting>
+      </example>
+     </para>
+    </note>
+   </sect2>
   </sect1>

   <sect1 xml:id="language.operators.errorcontrol">
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.