{"id":21096,"date":"2018-11-13T12:00:12","date_gmt":"2018-11-13T11:00:12","guid":{"rendered":"https:\/\/kinsta.com\/?p=31095"},"modified":"2023-08-21T09:14:33","modified_gmt":"2023-08-21T08:14:33","slug":"php-7-3","status":"publish","type":"post","link":"https:\/\/kinsta.com\/de\/blog\/php-7-3\/","title":{"rendered":"PHP 7.3 \u2013 Was ist neu? (Ist jetzt bei Kinsta verf\u00fcgbar)"},"content":{"rendered":"<p>Ab dem 6. Dezember 2018 ist die neueste und beste Version, PHP 7.3, verf\u00fcgbar! Mit ihr kommen neue n\u00fctzliche Funktionen, Funktionalit\u00e4ten, Verwerfungen, eine ganze Reihe von Bugfixes und eine Steigerung der Performance. <strong>PHP 7.3 ist nun auch f\u00fcr alle Kinsta-Kunden<\/strong> im <a href=\"https:\/\/my.kinsta.com\/sites\/tools\/?lang=de\">MyKinsta Dashboard<\/a> verf\u00fcgbar. \ud83e\udd18<\/p>\n<p><strong>Update:<\/strong> <a href=\"https:\/\/kinsta.com\/de\/changelog\/php-8-1\/\">PHP 8.1 (offizielles Release)<\/a> ist jetzt f\u00fcr alle Kinsta Kunden verf\u00fcgbar. PHP 7.3 wird von Kinsta nicht mehr unterst\u00fctzt. Bitte beachte, dass wir die PHP-Versionen 7.4, 8.0, 8.1, 8.2, 8.3, 8.4 und 8.5 unterst\u00fctzen.<\/p>\n<p>In diesem Beitrag geben wir einen \u00dcberblick \u00fcber die Features und \u00c4nderungen, die wir pers\u00f6nlich f\u00fcr am relevantesten halten. Sie k\u00f6nnen jedoch jederzeit die vollst\u00e4ndige Liste der Funktionen, \u00c4nderungen und Bugfixes in den PHP 7.3 <a href=\"https:\/\/github.com\/php\/php-src\/blob\/php-7.3.0beta1\/UPGRADING\" target=\"_blank\" rel=\"noopener noreferrer\">Upgrade-Notes<\/a> und in den PHP 7.3 \u201e<a href=\"https:\/\/wiki.php.net\/rfc#php_73\" target=\"_blank\" rel=\"noopener noreferrer\">Requests For Comments<\/a>\u201c \u00fcberpr\u00fcfen.<\/p>\n\n<h2>Was gibt es Neues in PHP 7.3?<\/h2>\n<p>In diesem Beitrag behandeln wir folgende Themen:<\/p>\n<ul>\n<li><a href=\"#flexible-heredoc-nowdoc\">Implementieren von flexiblen Heredoc und Nowdoc Syntaxes<\/a><\/li>\n<li><a href=\"#trailing-comma-in-function-calls\">Erlaube Trailing Comma in Function Calls<\/a><\/li>\n<li><a href=\"#JSON_THROW_ON_ERROR\">JSON_THROW_ON_ERROR<\/a><\/li>\n<li><a href=\"#list\">list() Referenzzuordnung<\/a><\/li>\n<li><a href=\"#is-countable\">is_countable Funktion<\/a><\/li>\n<li><a href=\"#array-key-first-last\">array_key_first(), array_key_last()<\/a><\/li>\n<li><a href=\"#argon2\">Argon2 Passwort Hash Erweiterung<\/a><\/li>\n<li><a href=\"#deprecations\">Deprecations<\/a><\/li>\n<\/ul>\n<h2 id=\"flexible-heredoc-nowdoc\">Flexible Heredoc und Nowdoc Syntaxes<\/h2>\n<p>Dies ist wahrscheinlich eine der wichtigsten Verbesserungen von PHP 7.3, und wir denken, dass es etwas mehr Aufmerksamkeit verdient. Bevor wir also in die PHP 7.3 Heredoc\/Northdoc-\u00c4nderungen einsteigen, geben wir Ihnen einen kurzen \u00dcberblick \u00fcber diese n\u00fctzliche Kernfunktion. Wenn Sie bereits mit nowdoc und heredoc vertraut sind, k\u00f6nnen Sie gerne direkt zu den \u00c4nderungen an PHP 7.3 gehen.<\/p>\n<ul>\n<li><a href=\"#heredoc-nowdoc-overview\">Ein \u00dcberblick \u00fcber heredoc und nowdoc syntaxes<\/a><\/li>\n<li><a href=\"#heredoc-nowdoc-indentation\">PHP 7.3: Erm\u00f6glicht das Einr\u00fccken der Schlie\u00dfmarkierung und das Entfernen des f\u00fchrenden Leerzeichens.<\/a><\/li>\n<li><a href=\"#heredoc-nowdoc-closing-marker\" target=\"_blank\" rel=\"noopener noreferrer\">PHP 7.3: Remove the Trailing New Line Requirement From the Closing Marker<\/a><\/li>\n<\/ul>\n<h3 id=\"heredoc-nowdoc-overview\">Ein \u00dcberblick \u00fcber die Heredoc- und Nowdoc-Syntaxen<\/h3>\n<p><strong>Die heredoc-Syntax bietet die M\u00f6glichkeit, eine gro\u00dfe Textmenge hinzuzuf\u00fcgen, ohne dass man Dinge wie doppelte Anf\u00fchrungszeichen vermeiden muss.<\/strong> Ein Heredoc beginnt mit <code>&lt;&lt;&lt;<\/code>, gefolgt von einem Marker, und endet mit dem gleichen Marker, gefolgt von einem Semikolon. Hier ist ein Beispiel:<\/p>\n<pre><code class=\"language-php\">print &lt;&lt;&lt;EOT\nHeredoc text behaves just like a double-quoted string, without the double quotes.\nEOT;<\/code><\/pre>\n<p>Ein Nowdoc verh\u00e4lt sich \u00e4hnlich wie ein Heredoc, mit einigen Ausnahmen:<\/p>\n<ul>\n<li>Der Bezeichner wird in einfache Anf\u00fchrungszeichen gesetzt (<code>&lt;&lt;&lt;'EOT'<\/code>)<\/li>\n<li>In einem nowdoc wird kein Parsing durchgef\u00fchrt.<\/li>\n<\/ul>\n<p>Hier ist ein Beispiel f\u00fcr nowdoc:<\/p>\n<pre><code class=\"language-php\">print &lt;&lt;&lt;'EOT'\nNowdocs are to single-quoted strings what heredocs are to double-quoted strings.\nEOT;<\/code><\/pre>\n<p>Heredocs und Nowdocs haben die gleichen Regeln, die die Verwendung der Schlie\u00dfmarkierung regeln:<\/p>\n<ol>\n<li>Die Schlie\u00dfmarkierung muss in der ersten Spalte der Zeile beginnen.<\/li>\n<li>Der Marker muss den gleichen Namensregeln folgen wie jedes andere Label in PHP: Er darf nur alphanumerische Zeichen und Unterstriche enthalten und muss mit einem Unterstrich oder einem anderen Zeichen welches keine Zahl ist beginnen.<\/li>\n<\/ol>\n<p>Die <a href=\"http:\/\/php.net\/manual\/en\/language.types.string.php#language.types.string.syntax.heredoc\" target=\"_blank\" rel=\"noopener noreferrer\">PHP Anleitung<\/a> warns:<\/p>\n<blockquote><p>\u201eEs ist sehr wichtig zu beachten, dass die Zeile mit der Abschlusskennung keine weiteren Zeichen enthalten darf, au\u00dfer einem Semikolon (;). Das bedeutet insbesondere dass der Bezeichner <em> nicht einger\u00fcckt sein darf<\/em>, und vor oder nach dem Semikolon keine Leerzeichen oder Tabulatoren vorhanden sein d\u00fcrfen. Es ist auch wichtig zu wissen, dass das erste Zeichen vor dem Abschlusskennzeichen eine Zeilenumbruch sein muss, wie vom lokalen Betriebssystem definiert. Dies ist <code>\\n<\/code> auf UNIX-Systemen, einschlie\u00dflich macOS, der Fall. Nach dem abschlie\u00dfenden Trennzeichen muss ebenfalls eine Zeilenumbruch erfolgen.\u201c<\/p><\/blockquote>\n<p><strong>PHP 7.2 ung\u00fcltiger Syntax:<\/strong><\/p>\n<pre><code class=\"language-php\">class foo {\n    public $bar = &lt;&lt;&lt;EOT\n    bar\n    EOT;\n}\n\/\/ Identifier must not be indented<\/code><\/pre>\n<p><strong>PHP 7.2 g\u00fcltiger Syntax:<\/strong><\/p>\n<pre><code class=\"language-php\">class foo {\n    public $bar = &lt;&lt;&lt;EOT\nbar\nEOT;\n}<\/code><\/pre>\n<p>Um es kurz zu halten, in PHP 7.2:<\/p>\n<ul>\n<li>Darf die Schlie\u00dfmarkierung nicht einger\u00fcckt werden.<\/li>\n<li>Darf die Zeile mit der Schlie\u00dfmarkierung keine Zeichen wie Leerzeichen oder Tabulatoren enthalten.<\/li>\n<li>Muss das erste Zeichen vor der Schlie\u00dfmarkierung ein Zeilenumbruch sein.<\/li>\n<li>Muss Nach der Schlie\u00dfmarkierung eine neue Zeile folgen.<\/li>\n<\/ul>\n<p>Es ist offensichtlich, dass die Syntaxen von Heredoc und Nowdoc sehr restriktiv sind, aber PHP 7.3 kann dies mit den folgenden Verbesserungen ein wenig \u00e4ndern.<\/p>\n<h3 id=\"heredoc-nowdoc-indentation\">1. Erm\u00f6glicht das Einr\u00fccken der Schlie\u00dfmarkierung und das Entfernen des f\u00fchrenden Leerzeichens.<\/h3>\n<p><strong>Mit PHP 7.3 ist es uns erlaubt, die Schlie\u00dfmarkierung einzur\u00fccken<\/strong>, und wir k\u00f6nnen folgenden Code sicher schreiben:<\/p>\n<pre><code class=\"language-php\">class foo {\n    public $bar = &lt;&lt;&lt;EOT\nbar\nEOT;\n}<\/code><\/pre>\n<p>Die Einr\u00fcckung der Schlie\u00dfmarkierung legt die Menge an Leerzeichen (oder Tabs) fest, die von jeder Zeile des K\u00f6rpers entfernt werden. Aber Vorsicht: <strong>Der Schlie\u00dfmarker sollte niemals weiter einger\u00fcckt sein als jede andere Linie des K\u00f6rpers<\/strong>.<\/p>\n<p>Siehe untenstehender Code:<\/p>\n<pre><code class=\"language-php\">class foo {\n    public $bar = &lt;&lt;&lt;EOT\nbar\nEOT;\n}<\/code><\/pre>\n<p>Der obige Code w\u00fcrde den folgenden Parse-Fehler ausl\u00f6sen:<\/p>\n<pre>Parse error: Invalid body indentation level (expecting an indentation at least ...) in %s on line %d<\/pre>\n<p>Das Entfernen von Tabulatoren und Leerzeichen erlaubt es uns, den K\u00f6rper des Heredocs\/nowdoc auf die gleiche Ebene des Codes um ihn herum einzur\u00fccken, und zwar ohne unn\u00f6tigen Leerraum vor jeder Zeile des K\u00f6rpers.<\/p>\n<p>Wir k\u00f6nnen sowohl Tabulatoren als auch Leerzeichen f\u00fcr die Einr\u00fcckung verwenden, aber wir d\u00fcrfen sie nicht vermischt verwenden. Das bedeutet, dass <strong>wir die gleichen Einr\u00fcckungszeichen f\u00fcr den Schlie\u00dfmarker und alle Linien des K\u00f6rpers verwenden m\u00fcssen<\/strong>. Im Falle von unterschiedlichen Einr\u00fcckungszeichen w\u00fcrden wir eine andere Art von Parse-Fehler (ung\u00fcltige Einr\u00fcckung) erwarten.<\/p>\n<h3 id=\"heredoc-nowdoc-closing-marker\">2. Entfernen Sie die nachlaufende neue Leitungsanforderung vom Schlie\u00dfmarker.<\/h3>\n<p>Derzeit muss dem Marker eine neue Zeile folgen, um das Heredoc\/Northdoc zu beenden. PHP 7.3 w\u00fcrde dies \u00e4ndern und es uns erm\u00f6glichen, das heredoc\/nowdoc in der gleichen Zeile zu beenden. Hier ist ein Beispiel aus dem RFC:<\/p>\n<p><strong>PHP 7.2 g\u00fcltiger Syntax:<\/strong><\/p>\n<pre><code class=\"language-php\">$values = [&lt;&lt;&lt;END\na\nb\nc\nEND\n, 'd e f'];<\/code><\/pre>\n<p><strong>PHP 7.3 g\u00fcltiger Syntax:<\/strong><\/p>\n<pre><code class=\"language-php\">$values = [&lt;&lt;&lt;END\na\nb\nc\nEND\n, 'd e f'];<\/code><\/pre>\n<p>Seien Sie jedenfalls vorsichtig bei der Wahl des Namens Ihres Markers, denn &#8222;gelegentlich&#8220; k\u00f6nnen Sie mit einem Fehler rechnen, wenn er mit einem Wort \u00fcbereinstimmt, das Sie im Body des heredoc\/nowdoc verwendet haben (lesen Sie mehr dazu auf dem <a href=\"https:\/\/wiki.php.net\/rfc\/flexible_heredoc_nowdoc_syntaxes\" target=\"_blank\" rel=\"noopener noreferrer\">RFC<\/a> und <a href=\"https:\/\/github.com\/php\/php-src\/blob\/php-7.3.0beta1\/UPGRADING#L33\" target=\"_blank\" rel=\"noopener noreferrer\">GitHub<\/a>).<\/p>\n<p>Both proposals passed with more than 2\/3 votes.<\/p>\n<h4>PHP 7.3 RFC<\/h4>\n<ul>\n<li><a href=\"https:\/\/wiki.php.net\/rfc\/flexible_heredoc_nowdoc_syntaxes\" target=\"_blank\" rel=\"noopener noreferrer\">Flexible Heredoc und Nowdoc Syntaxe<\/a><\/li>\n<\/ul>\n<h4>Zus\u00e4tzliche Infos:<\/h4>\n<ul>\n<li><a href=\"http:\/\/php.net\/manual\/en\/language.types.string.php#language.types.string.syntax.heredoc\" target=\"_blank\" rel=\"noopener noreferrer\">Heredoc string Syntax<\/a><\/li>\n<li><a href=\"http:\/\/php.net\/manual\/en\/language.types.string.php#language.types.string.syntax.nowdoc\" target=\"_blank\" rel=\"noopener noreferrer\">Nowdoc string syntax<\/a><\/li>\n<\/ul>\n<h2 id=\"trailing-comma-in-function-calls\">Erlaubt ein nachgestelltes Komma in Funktionsaufrufen<\/h2>\n<p>Nachfolgende Kommas (oder &#8222;Endkommas&#8220;) werden an eine Liste von Elementen, Parametern oder Eigenschaften angeh\u00e4ngt und sind n\u00fctzlich in Kontexten, in denen neue Werte h\u00e4ufig angeh\u00e4ngt werden, weil sie Fehler aufgrund eines fehlenden Komma verhindern. In PHP sind nachgestellte Kommas in Arrays erlaubt, und ab <a href=\"https:\/\/kinsta.com\/de\/blog\/php-7-2\/\" target=\"_blank\" rel=\"noopener noreferrer\">PHP 7.2<\/a> sind sie in gruppierten Namensr\u00e4umen erlaubt.<\/p>\n<p>Ab PHP 7.3 sind nachgestellte Kommas in Funktionsdeklarationen erlaubt. <a href=\"https:\/\/en.wikipedia.org\/wiki\/Variadic_function\" target=\"_blank\" rel=\"noopener noreferrer\">Variadische Funktionen<\/a> bieten ein Beispiel f\u00fcr einen Kontext, in dem nachgestellte Kommas \u00e4u\u00dferst n\u00fctzlich sind:<\/p>\n<pre><code class=\"language-php\">foo(\n    $bar,\n    $baz,\n);<\/code><\/pre>\n<p>Wir k\u00f6nnen ein abschlie\u00dfendes Komma verwenden, wenn wir ein Array mit <code>compact()<\/code>, erstellen, um eine formatierte Zeichenkette mit <code>sprintf()<\/code> zur\u00fcckzugeben, oder wenn wir ein Array zusammenf\u00fchren:<\/p>\n<pre><code class=\"language-php\">$newArray = array_merge(\n    $arrayOne,\n    $arrayTwo,\n    ['foo', 'bar'],\n);<\/code><\/pre>\n<p>Auch das Nachfolgen von Kommas w\u00e4re f\u00fcr das Debuggen n\u00fctzlich:<\/p>\n<pre><code class=\"language-php\">var_dump(\n    $foo,\n    $bar,\n    $baz,\n);<\/code><\/pre>\n<p>Und sie sind n\u00fctzlich mit <code>unset()<\/code> und <code>isset()<\/code>:<\/p>\n<pre><code class=\"language-php\">unset(\n    $foo,\n    $bar,\n    $baz,\n);\n\nisset(\n    $foo,\n    $bar,\n    $baz,\n);<\/code><\/pre>\n<p>Nachfolgende Kommas sind auch in Methodenaufrufen und Anlagen erlaubt.<\/p>\n<p>Hinweis: <strong>Diese \u00c4nderung betrifft nur Funktionsaufrufe. Die Syntax der Funktionsdeklaration \u00e4ndert sich nicht<\/strong>. Au\u00dferdem sind freistehende Kommas, mehrere Nachkommas und f\u00fchrende Kommas nicht erlaubt.<\/p>\n<p>Weitere Beispiele finden Sie auf der <a href=\"https:\/\/wiki.php.net\/rfc\/trailing-comma-function-calls\" target=\"_blank\" rel=\"noopener noreferrer\">RFC-Seite<\/a>. Dieser RFC wurde mit 30 zu 10 Stimmen verabschiedet.<\/p>\n<h4>PHP 7.3 RFC<\/h4>\n<ul>\n<li><a href=\"https:\/\/wiki.php.net\/rfc\/flexible_heredoc_nowdoc_syntaxes\" target=\"_blank\" rel=\"noopener noreferrer\">Flexible Heredoc und Nowodoc Syntaxes<\/a><\/li>\n<\/ul>\n<h2 id=\"JSON_THROW_ON_ERROR\">JSON_THROW_ON_ERROR<\/h2>\n<p>Eine der beliebtesten Funktionalit\u00e4ten von PHP 7.3 bietet eine neue M\u00f6glichkeit, JSON-Fehler zu behandeln. Dies ist kein Kernfeature, sondern eine Erweiterung der JSON-Erweiterung, die das Fehlerverhalten von<a href=\"http:\/\/www.php.net\/json_decode\" target=\"_blank\" rel=\"noopener noreferrer\"> json_decode()<\/a> und<a href=\"http:\/\/www.php.net\/json_encode\" target=\"_blank\" rel=\"noopener noreferrer\"> json_encode()<\/a> \u00e4ndern w\u00fcrde.<\/p>\n<p>Derzeit gibt\u00a0<code>json_decode()<\/code>\u00a0<code>null<\/code> bee einem Fehler z\u00fcr\u00fcck\u00a0<code>null<\/code> aber null kann auch ein g\u00fcltiges Ergebnis sein. Das kann verwirrend sein, denn:<\/p>\n<blockquote><p>Es ist nur m\u00f6glich zu wissen, ob ein Fehler aufgetreten ist, indem <code>json_last_error()<\/code> oder <code>json_last_error_msg()<\/code> aufgerufen wird, die den globalen Fehlerzustand in maschinenlesbaren bzw. menschenlesbaren Formen zur\u00fcckgeben. &#8211; <a href=\"https:\/\/wiki.php.net\/rfc\/json_throw_on_error\" target=\"_blank\" rel=\"noopener noreferrer\">PHP RFC<\/a><\/p><\/blockquote>\n<p><code>json_encode()<\/code> gibt\u00a0<code>FALSE<\/code> being einem Fehler z\u00fcr\u00fcck. Dies ist klarer, da es einen bestimmten Fehlerwert gibt. <strong>Beide Funktionen stoppen die Programmausf\u00fchrung jedenfalls nicht im Fehlerfall und warnen nicht.<\/strong><\/p>\n<p>Abgesehen davon, hier ist der Vorschlag f\u00fcr PHP 7.3:<\/p>\n<blockquote><p>Dieser RFC schl\u00e4gt stattdessen vor, einen neuen Optionsflag-Wert f\u00fcr <code>json_decode()<\/code> und <code>json_encode()<\/code>, <code>JSON_THROW_ON_ERROR<\/code>inzuzuf\u00fcgen. Wenn dieses Flag \u00fcberschritten wird, wird das Fehlerverhalten dieser Funktionen ge\u00e4ndert. Der globale Fehlerzustand bleibt unber\u00fchrt, und wenn ein Fehler auftritt, der ihn ansonsten setzen w\u00fcrde, werfen diese Funktionen stattdessen eine <code>JsonException<\/code> mit der Nachricht und dem Code, der auf <code>json_last_error()<\/code> und <code>json_last_error_msg()<\/code> gesetzt ist.<\/p><\/blockquote>\n<p>Hier ist ein einfaches Beispiel, das eine M\u00f6glichkeit aufzeigt, einen JSON-Fehler zu verursachen:<\/p>\n<pre><code class=\"language-php\">try {\n    json_decode(\"{\", false, 512, JSON_THROW_ON_ERROR);\n}\ncatch (\\JsonException $exception) {\n    echo $exception-&gt;getMessage(); \/\/ echoes \"Syntax error\"\n}<\/code><\/pre>\n<p>Das Ausl\u00f6sen einer Ausnahme bei einem Fehler w\u00fcrde mehrere Vorteile mit sich bringen, die Sie auf dem <a href=\"https:\/\/wiki.php.net\/rfc\/json_throw_on_error\" target=\"_blank\" rel=\"noopener noreferrer\">RFC<\/a> finden.<\/p>\n<p>Hinweis: Ein ung\u00fcltiger Tiefenparameter, der an <code>json_decode()<\/code> \u00fcbergeben wird, gibt eine Warnung aus und gibt <code>NULL<\/code> zur\u00fcck. Dieses Verhalten wird von <code>JSON_THROW_ON_ERROR<\/code>. Similarly, nicht beeinflusst. Ebenso werden Parameter-Parsing-Fehler von <code>JSON_THROW_ON_ERROR<\/code> nicht beeinflusst und erzeugen weiterhin Warnungen.<\/p>\n<p>Dieser Vorschlag wurde mit 23 zu 0 Stimmen angenommen.<\/p>\n<h4>PHP 7.3 RFC<\/h4>\n<ul>\n<li><a href=\"https:\/\/wiki.php.net\/rfc\/json_throw_on_error\" target=\"_blank\" rel=\"noopener noreferrer\">JSON_THROW_ON_ERROR<\/a><\/li>\n<\/ul>\n<h4>Zus\u00e4tzliches Material<\/h4>\n<ul>\n<li><a href=\"http:\/\/php.net\/manual\/en\/book.json.php\" target=\"_blank\" rel=\"noopener noreferrer\">JavaScript Object Notation<\/a><\/li>\n<li><a href=\"http:\/\/php.net\/manual\/en\/function.json-decode.php\" target=\"_blank\" rel=\"noopener noreferrer\">json_decode()<\/a><\/li>\n<li><a href=\"http:\/\/php.net\/manual\/en\/function.json_encode\" target=\"_blank\" rel=\"noopener noreferrer\">json_encode()<\/a><\/li>\n<li><a href=\"http:\/\/php.net\/manual\/en\/function.json-last-error.php\" target=\"_blank\" rel=\"noopener noreferrer\">json_last_error()<\/a><\/li>\n<li><a href=\"http:\/\/php.net\/manual\/en\/function.json-last-error-msg.php\" target=\"_blank\" rel=\"noopener noreferrer\">json_last_error_msg()<\/a><\/li>\n<li><a href=\"http:\/\/php.net\/manual\/en\/language.exceptions.php\" target=\"_blank\" rel=\"noopener noreferrer\">PHP Language Exceptions<\/a><\/li>\n<\/ul>\n<h2 id=\"list\">list() Reference Assignment<\/h2>\n<h3>Was bedeutet \u201eReference Assignment\u201c?<\/h3>\n<p>Beachten Sie die folgende Zeile:<\/p>\n<pre><code class=\"language-php\">$b = &$a;<\/code><\/pre>\n<p>Hier erh\u00e4lt\u00a0<code>$b<\/code> den Wert von\u00a0<code>$a<\/code>, aber dieter Wert wild nicht von\u00a0<code>$a<\/code> nach\u00a0<code>$b<\/code>kopiert. In PHP k\u00f6nnen wir einen Wert per Referenz zuweisen, was bedeutet, dass zwei Variablen auf dieselben Daten verweisen k\u00f6nnen, und jede \u00c4nderung an einer Variablen wirkt sich auf die Originaldaten aus. Hier ist ein Beispiel aus dem <a href=\"http:\/\/php.net\/manual\/en\/language.operators.assignment.php#language.operators.assignment.reference\" target=\"_blank\" rel=\"noopener noreferrer\">PHP Handbuch<\/a>:<\/p>\n<pre><code class=\"language-php\">&lt;?php\n$a = 3;\n$b = &$a; \/\/ $b is a reference to $a\n\nprint \"$a\\n\"; \/\/ prints 3\nprint \"$b\\n\"; \/\/ prints 3<\/code><\/pre>\n<p>Lassen Sie uns nun den Wert von <code>$a<\/code> \u00e4ndern:<\/p>\n<pre><code class=\"language-php\">$a = 4; \/\/ change $a\n\nprint \"$a\\n\"; \/\/ prints 4\nprint \"$b\\n\"; \/\/ prints 4 as well, since $b is a reference to $a, which has been changed<\/code><\/pre>\n<h3>Was ist der list() Construct und wie wird er sich mit PHP 7.3 ver\u00e4ndern?<\/h3>\n<p>Das Sprachkonstrukt\u00a0<a href=\"http:\/\/www.php.net\/list\" target=\"_blank\" rel=\"noopener noreferrer\">list()<\/a> kann verwendet werden, um &#8222;Variablen so zuzuweisen, als w\u00e4ren sie in einem Array&#8220;, aber mit <code>list()<\/code> ist es uns derzeit nicht erlaubt, Variablenwerte per Referenz zuzuweisen.<\/p>\n<p>PHP 7.3 sollte dies \u00e4ndern, so dass wir Variablen per Referenz auch mit dem <code>list()<\/code> Konstrukt zuweisen k\u00f6nnen, wie im folgenden Beispiel gezeigt:<\/p>\n<pre><code class=\"language-php\">$array = [1, 2];\nlist($a, &$b) = $array;<\/code><\/pre>\n<p>Dies ist das gleiche wie:<\/p>\n<pre><code class=\"language-php\">$array = [1, 2];\n$a = $array[0];\n$b =& $array[1];<\/code><\/pre>\n<p>Der Vorteil dieses Vorschlags ist, dass wir nun mehrere Variablen per Referenz zuweisen k\u00f6nnen, was derzeit nicht erlaubt war. Weitere Beispiele sind auf dem <a href=\"https:\/\/wiki.php.net\/rfc\/list_reference_assignment\" target=\"_blank\" rel=\"noopener noreferrer\">RFC<\/a> verf\u00fcgbar. Dieser Vorschlag wurde mit 17 zu 7 Stimmen angenommen.<\/p>\n<h4>PHP 7.3 RFC<\/h4>\n<ul>\n<li><a href=\"https:\/\/wiki.php.net\/rfc\/list_reference_assignment\" target=\"_blank\" rel=\"noopener noreferrer\">list() Reference Assignment<\/a><\/li>\n<\/ul>\n<h4>Zus\u00e4tzliches Material:<\/h4>\n<ul>\n<li>PHP Handbuch &#8211; <a href=\"http:\/\/php.net\/manual\/en\/function.list.php\" target=\"_blank\" rel=\"noopener noreferrer\">list()<\/a><\/li>\n<li>PHP Handbuch &#8211; <a href=\"http:\/\/php.net\/manual\/en\/language.references.php\" target=\"_blank\" rel=\"noopener noreferrer\">References Explained<\/a><\/li>\n<li>Assignment Operators &#8211; <a href=\"http:\/\/php.net\/manual\/en\/language.operators.assignment.php#language.operators.assignment.reference\" target=\"_blank\" rel=\"noopener noreferrer\">Assignment by Reference<\/a><\/li>\n<\/ul>\n<h2 id=\"is-countable\">is_countable Funktion<\/h2>\n<p>Ein weiteres n\u00fctzliches Feature von PHP 7.3 ist die Funktion <code>is_countable()<\/code>. Bis zu <a href=\"https:\/\/kinsta.com\/de\/blog\/php-7-2\/\" target=\"_blank\" rel=\"noopener noreferrer\">PHP 7.2<\/a>, erhalten wir einen Fehler beim Versuch, etwas zu <a href=\"http:\/\/php.net\/manual\/en\/function.count.php\" target=\"_blank\" rel=\"noopener noreferrer\">count()<\/a> das nicht z\u00e4hlbar ist. Aus diesem Grund sind wir gezwungen, den folgenden Code hinzuzuf\u00fcgen, um eine Warnung zu vermeiden:<\/p>\n<pre><code class=\"language-php\">if (is_array($foo) || $foo instanceof Countable) {\n    \/\/ $foo is countable\n}<\/code><\/pre>\n<p>Dieser RFC schl\u00e4gt die Funktion <a href=\"https:\/\/wiki.php.net\/rfc\/is-countable\" target=\"_blank\" rel=\"noopener noreferrer\">is_countable()<\/a> vor die <code>true<\/code> zur\u00fcckgibt, wenn die angegebene Variable ein Array oder eine z\u00e4hlbare Variable ist, ansonsten <code>false<\/code>. So k\u00f6nnte der obige Code wie folgt ge\u00e4ndert werden:<\/p>\n<pre><code class=\"language-php\">if (is_countable($foo)) {\n    \/\/ $foo is countable\n}<\/code><\/pre>\n<p>Dieser Vorschlag wurde mit 25 zu 0 Stimmen angenommen.<\/p>\n<h4>PHP 7.3 RFC<\/h4>\n<ul>\n<li><a href=\"https:\/\/wiki.php.net\/rfc\/is-countable\" target=\"_blank\" rel=\"noopener noreferrer\">is_countable<\/a><\/li>\n<\/ul>\n<h4>Zus\u00e4tzliches Material\/h4&gt;<\/h4>\n<ul>\n<li><a href=\"http:\/\/php.net\/manual\/en\/class.countable.php\" target=\"_blank\" rel=\"noopener noreferrer\">The Countable interface<\/a><\/li>\n<li><a href=\"http:\/\/php.net\/manual\/en\/function.count.php\" target=\"_blank\" rel=\"noopener noreferrer\">count<\/a><\/li>\n<\/ul>\n<h2 id=\"array-key-first-last\">array_key_first(), array_key_last()<\/h2>\n<p>Derzeit k\u00f6nnen wir den ersten und den letzten Schl\u00fcssel eines Arrays mit den Funktionen <a href=\"http:\/\/php.net\/manual\/en\/function.reset.php\" target=\"_blank\" rel=\"noopener noreferrer\">reset()<\/a>, <a href=\"http:\/\/php.net\/manual\/en\/function.end.php\" target=\"_blank\" rel=\"noopener noreferrer\">end()<\/a> und <a href=\"http:\/\/php.net\/manual\/en\/function.key.php\" target=\"_blank\" rel=\"noopener noreferrer\">key()<\/a> abrufen. Leider gibt es mit diesen Funktionen keine M\u00f6glichkeit, den ersten oder letzten Index eines Arrays zu sammeln, ohne seinen internen Zustand zu \u00e4ndern. Andere Optionen reduzieren in der Regel die Lesbarkeit und Leistung des Codes.<br \/>\nDieser Vorschlag w\u00fcrde dieses Szenario \u00e4ndern, indem er zwei neue Funktionen zum PHP-Kern hinzuf\u00fcgt:<\/p>\n<ul>\n<li><code>array_key_first()<\/code><\/li>\n<li><code>array_key_last()<\/code><\/li>\n<\/ul>\n<p>Seit PHP 7.3, erm\u00f6glichen\u00a0<code>array_key_first()<\/code>\u00a0und <code>array_key_last()<\/code> das Abrufen des ersten und letzten Schl\u00fcssels eines bestimmten Arrays, <strong>ohne den internen Array-Pointer zu beeinflussen<\/strong>. Diese neuen Funktionen w\u00fcrden es uns erm\u00f6glichen, weniger komplexen Code zu schreiben und in einigen F\u00e4llen Fehler zu vermeiden. Weitere Informationen und einige Beispiele finden Sie im <a href=\"https:\/\/wiki.php.net\/rfc\/array_key_first_last\" target=\"_blank\" rel=\"noopener noreferrer\">RFC<\/a>.<\/p>\n<p><code>array_key_first()<\/code> und <code>array_key_last()<\/code> wurden mit 18 bis 14 Stimmen genehmigt.<\/p>\n<p>Hinweis: Der urspr\u00fcngliche RFC schlug zwei weitere Funktionen vor, <code>array_value_first()<\/code> und <code>array_value_last()<\/code>, die in einer anderen Umfrage abgestimmt wurden, aber nicht genehmigt wurden und nicht Teil des PHP-Kerns werden.<\/p>\n<h4>PHP 7.3 RFC<\/h4>\n<ul>\n<li><a href=\"https:\/\/wiki.php.net\/rfc\/array_key_first_last\" target=\"_blank\" rel=\"noopener noreferrer\">array_key_first(), array_key_last()<\/a><\/li>\n<\/ul>\n<h4>Zus\u00e4tzliches Material<\/h4>\n<ul>\n<li><a href=\"http:\/\/php.net\/manual\/en\/function.array-key-first.php\" target=\"_blank\" rel=\"noopener noreferrer\">array_key_first<\/a><\/li>\n<li><a href=\"http:\/\/php.net\/manual\/en\/function.array-key-last.php\" target=\"_blank\" rel=\"noopener noreferrer\">array_key_last<\/a><\/li>\n<\/ul>\n<h2 id=\"argon2\">Argon2 Passwort Hash Erweiterungen<\/h2>\n<p>Argon2 ist ein Hash-Algorithmus, der in <a href=\"https:\/\/kinsta.com\/de\/blog\/php-7-2\/\" target=\"_blank\" rel=\"noopener noreferrer\"> PHP 7.2<\/a> als Alternative zum Bcrypt-Algorithmus implementiert wurde. PHP 7.2 f\u00fchrte die Konstante PASSWORD_ARGON2I ein, die f\u00fcr die Verwendung in <code>PASSWORD_ARGON2I<\/code> ein, die f\u00fcr die Verwendung in <code>password_*<\/code>Funktionen verf\u00fcgbar ist:<\/p>\n<pre><code class=\"language-php\">password_hash('password', PASSWORD_ARGON2I);<\/code><\/pre>\n<p>Seit seiner ersten Implementierung wurde eine neue Variante von Argon2 hinzugef\u00fcgt, so dass zum Zeitpunkt dieses Schreibens Argon2 in drei Varianten erh\u00e4ltlich ist:<\/p>\n<ul>\n<li><strong>Argon2d<\/strong> maximiert die Widerstandsf\u00e4higkeit gegen GPU-Cracking-Angriffe. Es ist schneller und verwendet datenabh\u00e4ngigen Speicherzugriff.<\/li>\n<li><strong>Argon2i<\/strong> verwendet datenunabh\u00e4ngigen Speicherzugriff, der f\u00fcr die Passwort-Hashing bevorzugt wird. Es ist langsamer, da es mehr \u00dcbergaben \u00fcber den Speicher macht, um vor \u201etradeoff\u201c Attacken zu sch\u00fctzen.<\/li>\n<li><strong>Argon2id<\/strong> ist eine Hybridversion, die den Argon2i-Ansatz f\u00fcr den ersten Durchlauf \u00fcber den Speicher und den Argon2d-Ansatz f\u00fcr nachfolgende Durchl\u00e4ufe kombiniert.<\/li>\n<\/ul>\n<p>Argon2id wird im Internet empfohlen, au\u00dfer wenn es gute Gr\u00fcnde gibt, eine andere Variante zu bevorzugen.<\/p>\n<p>Der neue RFC schl\u00e4gt die Implementierung von Argon2id innerhalb der <a href=\"http:\/\/php.net\/manual\/en\/ref.password.php\" target=\"_blank\" rel=\"noopener noreferrer\">password_*<\/a> Funktionen mit der neuen Konstante <code>PASSWORD_ARGON2ID<\/code> vor:<\/p>\n<pre><code class=\"language-php\">password_hash('password', PASSWORD_ARGON2ID);<\/code><\/pre>\n<p>Die Implementierung ist identisch mit der Argon2i-Implementierung und akzeptiert die gleichen Kostenfaktoren:<\/p>\n<ul>\n<li><strong>Speicherkosten<\/strong>, die die Anzahl der KiBs definieren, die beim Hashing verbraucht werden sollen (Standardwerte sind 1&lt;&lt;&lt;10, oder 1024 KiB, oder 1 MiB).<\/li>\n<li>Ein <strong>Zeitaufwand<\/strong>, der die Anzahl der Iterationen des Hashing-Algorithmus definiert (Standard ist 2).<\/li>\n<li>Ein <strong>Parallelit\u00e4tsfaktor<\/strong>, der die Anzahl der parallelen Threads festlegt, die beim Hashing verwendet werden (Standard ist 2).<\/li>\n<\/ul>\n<p>Siehe folgender Code:<\/p>\n<pre><code class=\"language-php\">$options = ['memory_cost' =&gt; 1&lt;&lt;11, 'time_cost' =&gt; 4, 'threads' =&gt; 2];\npassword_hash('password', PASSWORD_ARGON2ID, $options);<\/code><\/pre>\n<p>Mehr Informationen und Beispiele finden Sie hier: <a href=\"https:\/\/wiki.php.net\/rfc\/argon2_password_hash_enhancements\" target=\"_blank\" rel=\"noopener noreferrer\">RFC<\/a>.<\/p>\n<h4>PHP 7.3 RFC<\/h4>\n<ul>\n<li><a href=\"https:\/\/wiki.php.net\/rfc\/argon2_password_hash_enhancements\" target=\"_blank\" rel=\"noopener noreferrer\">Argon2 Password Hash Erweiterungen<\/a><\/li>\n<\/ul>\n<h4>Zus\u00e4tzliches Material<\/h4>\n<ul>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Argon2\" target=\"_blank\" rel=\"noopener noreferrer\">Argon2<\/a> (Wikipedia)<\/li>\n<li><a href=\"https:\/\/www.cryptolux.org\/images\/0\/0d\/Argon2.pdf\" target=\"_blank\" rel=\"noopener noreferrer\">Argon2: the memory-hard function for password hashing and other applications<\/a> (PDF)<\/li>\n<\/ul>\n<h2 id=\"deprecations\">Verwerfungen<\/h2>\n<p>Die folgenden Funktionen\/Funktionalit\u00e4ten werden mit PHP 7.3 veraltet und sp\u00e4testens mit PHP 8.0 entfernt.<\/p>\n<h3>Verwerfen und Entfernen von image2wbmp()<\/h3>\n<p>Die Funktion <strong>image2wbmp()<\/strong> gibt eine <a href=\"https:\/\/en.wikipedia.org\/wiki\/Wireless_Application_Protocol_Bitmap_Format\" target=\"_blank\" rel=\"noopener noreferrer\">WBMP<\/a>-Version eines bestimmten Bildes aus oder speichert sie. Diese Funktion ben\u00f6tigt drei Argumente: eine Bildressource, einen Dateinamen (der Pfad zur gespeicherten Datei) und eine Vordergrundfarbe.<br \/>\nAb PHP 5.0 ist es identisch mit <a href=\"http:\/\/php.net\/manual\/en\/function.imagewbmp.php\" target=\"_blank\" rel=\"noopener noreferrer\">imagewbmp()<\/a>, daher schl\u00e4gt dieser <a href=\"https:\/\/wiki.php.net\/rfc\/image2wbmp\" target=\"_blank\" rel=\"noopener noreferrer\">RFC<\/a> vor, es zu verwerfen und zu entfernen.<br \/>\nSeit PHP 7.3 w\u00fcrde jeder Aufruf von <code>image2wbmp()<\/code> ine Verfallswarnung ausgeben. Nach der Entfernung w\u00fcrde jeder Aufruf einen fatalen Fehler verursachen.<\/p>\n<h4>PHP 7.3 RFC<\/h4>\n<ul>\n<li><a href=\"https:\/\/wiki.php.net\/rfc\/image2wbmp\" target=\"_blank\" rel=\"noopener noreferrer\">Verwerfen und Entfernen von image2wbmp()<\/a><\/li>\n<\/ul>\n<h3>Veraltete und entfernte Konstanten, die nicht auf Gro\u00df-\/Kleinschreibung achten.<\/h3>\n<p>PHP unterst\u00fctzt derzeit sowohl case-sensitive als auch case-insensitive Konstanten. Wie auch immer,<strong> Gro\u00df- und Kleinschreibung<\/strong> wird unterst\u00fctzt, gilt aber als abh\u00e4ngig von Inkonsistenzen in den Funktionalit\u00e4ten und als komplex in der Anwendung.<\/p>\n<p>Dieser Vorschlag beginnt mit den folgenden Pr\u00e4missen:<\/p>\n<ul>\n<li><a href=\"http:\/\/php.net\/manual\/en\/language.oop5.constants.php\" target=\"_blank\" rel=\"noopener noreferrer\">Klassenkonstanten <\/a> sind immer case-sensitive<\/li>\n<li>globale Konstanten, die mit <code>const<\/code> deklariert sind, sind immer case-sensitive<\/li>\n<li>Konstanten, die mit <code>define()<\/code> definiert sind, sind standardm\u00e4\u00dfig case-sensitive.<\/li>\n<\/ul>\n<p>Dar\u00fcber hinaus hei\u00dft es in der <a href=\"http:\/\/php.net\/manual\/en\/language.constants.php\" target=\"_blank\" rel=\"noopener noreferrer\">PHP-Language Reference<\/a> ausdr\u00fccklich:<\/p>\n<blockquote><p>\u201eEine Konstante ist standardm\u00e4\u00dfig case-sensitive. Konventionell sind Konstantenbezeichner immer in Gro\u00dfbuchstaben geschrieben.\u201c<\/p><\/blockquote>\n<p>Allerdings schl\u00e4gt dieser RFC folgende \u00c4nderungen vor:<\/p>\n<ul>\n<li>Veraltetes Aufrufen von <code>define()<\/code> mit drittem Parameter auf <code>true<\/code> gesetzt &#8211; PHP 7.3<\/li>\n<li>Verwerfen Sie den Zugriff auf case-insensitive Konstanten mit einem von der Deklaration unterschiedlichem casing (mit Ausnahme von <code>true<\/code>, <code>false<\/code> und <code>null<\/code>) &#8211; PHP 7.3<\/li>\n<li>Entfernen Sie die M\u00f6glichkeit, Konstanten mit Gro\u00df-\/Kleinschreibung zu deklarieren &#8211; PHP 8.0<\/li>\n<li>Konvertiert <code>true<\/code>, <code>false<\/code> und <code>null<\/code> von Sonderkonstanten in reservierte Keywords &#8211; PHP 8.0<\/li>\n<\/ul>\n<h4>PHP 7.3 RFC<\/h4>\n<p><a href=\"https:\/\/wiki.php.net\/rfc\/case_insensitive_constant_deprecation\" target=\"_blank\" rel=\"noopener noreferrer\">Verwerfen und entfernen Sie Case-Insensitive Konstanten.<\/a>.<\/p>\n<h3>Zus\u00e4tzliche Verwerfungen f\u00fcr PHP 7.3<\/h3>\n<p>Hier ist eine kurze Liste von Funktionalit\u00e4ten, die in PHP 7.3 veraltet sind. Diese ist nicht vollst\u00e4ndig, es sind nur die Vorschl\u00e4ge zur Verwerfung, die wir pers\u00f6nlich f\u00fcr wichtig halten. Eine vollst\u00e4ndige Liste der vorgeschlagenen Verwerfungen finden Sie unter <a href=\"https:\/\/wiki.php.net\/rfc\/deprecations_php_7_3\" target=\"_blank\" rel=\"noopener noreferrer\">Deprecations f\u00fcr PHP 7.3.<\/a><\/p>\n<p><strong>Undokumentierte mbstring-Funktionsaliase<\/strong>: Es gibt eine Reihe von undokumentierten <a href=\"http:\/\/php.net\/manual\/en\/book.mbstring.php\" target=\"_blank\" rel=\"noopener noreferrer\">mbstring<\/a> -Funktionsaliasen, die Duplikate von \u00e4quivalenten Funktionen mit <code>mb_<\/code>-Pr\u00e4fix sind. Zum Beispiel ist <code>mbereg<\/code> ein Alias von <code>mb_ereg<\/code>.<br \/>\nAlle diese Funktionen werden als veraltet markiert und es wird ein Verfallshinweis ausgegeben, wenn sie w\u00e4hrend der Kompilierung auftreten.<br \/>\n<strong>Zeichenketten-Suchfunktionen mit \u201einteger needle\u201c<\/strong>: Diese Funktionen arbeiten in der Regel auf string needles. Wenn eine Non-String-Needle angegeben wird, wird sie in eine ganze Zahl umgewandelt und als Ordnungszahl eines Zeichens angewendet (mehr dazu im <a href=\"http:\/\/php.net\/manual\/en\/function.strpos.php\" target=\"_blank\" rel=\"noopener noreferrer\">PHP Handbuch<\/a>). Hier ist ein <a href=\"https:\/\/wiki.php.net\/rfc\/deprecations_php_7_3#string_search_functions_with_integer_needle\" target=\"_blank\" rel=\"noopener noreferrer\"> Beispiel aus dem RFC<\/a>:<\/p>\n<pre><code class=\"language-php\">$str = \"There are 10 apples\";\nvar_dump(strpos($str, \"10\")); \/\/ int(10)\nvar_dump(strpos($str, 10));   \/\/ bool(false)<\/code><\/pre>\n<p>Dies gilt als verwirrend und verursacht unvorhersehbare Probleme, da sich der Typ mit der Benutzerdatenquelle \u00e4ndern kann. Aus diesem Grund schl\u00e4gt der RFC die Ausgabe einer Warnung vor, wenn eine Non-String-Needle an eine der folgenden Funktionen \u00fcbergeben wird:<\/p>\n<ul>\n<li><code>strpos<\/code><\/li>\n<li><code>strrpos<\/code><\/li>\n<li><code>stripos<\/code><\/li>\n<li><code>strripos<\/code><\/li>\n<li><code>strstr<\/code><\/li>\n<li><code>strchr<\/code><\/li>\n<li><code>strrchr<\/code><\/li>\n<li><code>stristr<\/code><\/li>\n<\/ul>\n<p>In PHP 8.0 sollte die Verfallswarnung entfernt und die \u201eNeedles\u201c automatisch in Zeichenketten umgewandelt werden.<\/p>\n<p><strong><code>fgetss()<\/code> Funktion und <code>string.strip_tags<\/code> Streamfilter<\/strong>: <code>fgetss()<\/code> und <code>string.strip_tags<\/code> strippen Tags aus einem Stream, w\u00e4hrend sie ihn lesen. Sowohl die Funktion als auch der Filter zeigen die <a href=\"http:\/\/php.net\/manual\/en\/function.strip-tags.php\" target=\"_blank\" rel=\"noopener noreferrer\">strip_tags()<\/a>-Funktionalit\u00e4t an, was die Implementierung von <code>strip_tags()<\/code> komplexer macht, da eine Streaming-State-Machine erforderlich ist. Dar\u00fcber hinaus weist der RFC auf einen <a href=\"https:\/\/wiki.php.net\/rfc\/deprecations_php_7_3#fgetss_function_and_stringstrip_tags_filter\" target=\"_blank\" rel=\"noopener noreferrer\"> weiteren Nachteil<\/a> dieser Funktionen hin:<\/p>\n<blockquote><p>\u201eAuf der anderen Seite scheinen diese Funktionen von sehr geringem Nutzen zu sein. <code>strip_tags()<\/code> selbst hat aufgrund seiner Einschr\u00e4nkungen und bekannten Fehler bereits sehr wenige legitime Anwendungen. Es ist nicht erforderlich, dar\u00fcber hinaus native Unterst\u00fctzung f\u00fcr Streaming-Anwendungen zu bieten.\u201c<\/p><\/blockquote>\n<p>Daher schl\u00e4gt der RFC vor, <code>fgetss()<\/code>, <code>gzgetss()<\/code> und <code>SplFileObject::fgetss()<\/code> als veraltet zu markieren.<\/p>\n<h2>Was bedeutet PHP 7.3 f\u00fcr WordPress-Benutzer?<\/h2>\n<p>Laut der offiziellen <a href=\"https:\/\/wordpress.org\/about\/stats\/\" target=\"_blank\" rel=\"noopener noreferrer\">WordPress Stats<\/a>-Seite haben zum Zeitpunkt des Schreibens nur 32,9% der WordPress-Benutzer auf PHP 7 oder h\u00f6her umgestellt. Nur 4% verwenden <a href=\"https:\/\/kinsta.com\/de\/blog\/php-7-2\/\" target=\"_blank\" rel=\"noopener noreferrer\">PHP 7.2<\/a>. Sie sehen, dass eine gro\u00dfe Mehrheit der Benutzer, \u00fcber 38%, noch immer mit PHP 5.6 arbeiten. Noch be\u00e4ngstigender ist, dass \u00fcber 28,5% der Benutzer nicht unterst\u00fctzte PHP-Versionen verwenden. Seit Dezember 2016 hat WordPress.org seine <a href=\"https:\/\/wordpress.org\/about\/requirements\/\" target=\"_blank\" rel=\"noopener noreferrer\">offizielle Empfehlung<\/a> f\u00fcr Benutzer von PHP 5.6 auf PHP 7 oder h\u00f6her erh\u00f6ht.<\/p>\n<figure id=\"attachment_31275\" aria-describedby=\"caption-attachment-31275\" style=\"width: 1404px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-31275 size-full\" src=\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2018\/08\/wordpress-php-versionen.png\" alt=\"WordPress PHP Versionen\" width=\"1404\" height=\"1054\"><figcaption id=\"caption-attachment-31275\" class=\"wp-caption-text\">WordPress PHP Versionen<\/figcaption><\/figure>\n<h3>PHP 7 Performance<\/h3>\n<p>Die obigen Zahlen sind besonders entmutigend aus Performance-Sicht, da sich PHP 7 als wesentlich schneller erwiesen hat. Hier sind ein paar Statistiken:<\/p>\n<ul>\n<li>Offizielle PHP-<a href=\"http:\/\/talks.php.net\/fluent15#\/wpbench\" target=\"_blank\" rel=\"noopener noreferrer\">Benchmarks<\/a> zeigen, dass PHP 7 es dem System erm\u00f6glicht, doppelt so viele Anfragen pro Sekunde im Vergleich zu PHP 5.6 bei fast der H\u00e4lfte der Latenzzeit auszuf\u00fchren.<\/li>\n<li>Christian Vigh ver\u00f6ffentlichte auch einen <a href=\"https:\/\/www.phpclasses.org\/blog\/post\/493-php-performance-evolution.html\" target=\"_blank\" rel=\"noopener noreferrer\">PHP-Leistungsvergleich<\/a>, in dem er feststellte, dass PHP 5.2 400% langsamer war als PHP 7.<\/li>\n<li>Erste <a href=\"https:\/\/www.phoronix.com\/scan.php?page=news_item&#038;px=PHP-7.3-RC1-Released\" target=\"_blank\" rel=\"noopener noreferrer\">Benchmarks von Phoronix<\/a> haben gezeigt, dass PHP 7.3 etwa 5% schneller ist als PHP 7.2.<\/li>\n<\/ul>\n<p>Wir haben unsere eigenen <a href=\"https:\/\/kinsta.com\/de\/blog\/php-benchmarks\/\">PHP-Performance-Benchmarks<\/a> durchgef\u00fchrt. Und \u00e4hnlich wie bei den obigen Benchmarks haben wir gesehen, dass WordPress 5.0 auf PHP 7.3 fast dreimal so viele Transaktionen (Anfragen) pro Sekunde ausf\u00fchren kann wie PHP 5.6.<\/p>\n<figure id=\"attachment_37393\" aria-describedby=\"caption-attachment-37393\" style=\"width: 940px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-37393 size-full\" src=\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2018\/12\/wordpress-5.0-php-benchmarks-v2.png\" alt=\"WordPress 5.0 PHP benchmarks\" width=\"940\" height=\"788\"><figcaption id=\"caption-attachment-37393\" class=\"wp-caption-text\">WordPress 5.0 PHP benchmarks<\/figcaption><\/figure>\n<ul>\n<li>WordPress 5.0 PHP 5.6 Vergleich: 91.64 req\/sek<\/li>\n<li>WordPress 5.0 PHP 7.0 Vergleichsergebnisse: 206.71 req\/sek<\/li>\n<li>WordPress 5.0 PHP 7.1 Vergleichsergebnisse: 210.98 req\/sek<\/li>\n<li>WordPress 5.0\u00a0PHP 7.2 Vergleichsergebnisse: 229.18\u00a0req\/sek<strong>\u00a0<\/strong><\/li>\n<li>WordPress 5.0\u00a0<strong>PHP 7.3 Vergleichsergebnisse: 253.20 req\/sek<\/strong>\u00a0\ud83c\udfc6<\/li>\n<\/ul>\n<p>Es ist auch interessant festzustellen, dass WordPress 4.9.8 auf PHP 7.3 etwas schneller war als WordPress 5.0.<\/p>\n<figure id=\"attachment_37398\" aria-describedby=\"caption-attachment-37398\" style=\"width: 940px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-37398 size-full\" src=\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2018\/12\/wordpress-4.9.8-php-benchmarks.png\" alt=\"WordPress 4.9.8 PHP benchmarks\" width=\"940\" height=\"788\"><figcaption id=\"caption-attachment-37398\" class=\"wp-caption-text\">WordPress 4.9.8 PHP benchmarks<\/figcaption><\/figure>\n<ul>\n<li>WordPress 4.9.8 PHP 5.6 Vergleich: 97.59 req\/sek<\/li>\n<li>WordPress 4.9.8 PHP 7.0 Vergleichsergebnisse: 221.42 req\/sek<\/li>\n<li>WordPress 4.9.8 PHP 7.1 Vergleichsergebnisse: 233.78 req\/sek<\/li>\n<li>WordPress 4.9.8 PHP 7.2 Vergleichsergebnisse: 250.36 req\/sek<strong>\u00a0<\/strong><\/li>\n<li>WordPress\u00a04.9.8\u00a0<strong>PHP 7.3 Vergleichsergebnisse: 276.31 req\/sek\u00a0<\/strong>\ud83c\udfc6<\/li>\n<\/ul>\n<p>Viele aktualisieren die PHP Version nicht, einfach wegen der Zeit, die mit dem Testen all ihrer Plugins und Designs von Drittanbietern verbunden ist, um sicherzustellen, dass sie ordnungsgem\u00e4\u00df funktionieren. Aber oft ist der Grund einfach nur der das man es noch nicht getan hat.<\/p>\n<h3>Die PHP Version pr\u00fcfen<\/h3>\n<p>Sie sind sich nicht sicher, welche Version von PHP Sie verwenden? Eine der einfachsten M\u00f6glichkeiten, dies zu \u00fcberpr\u00fcfen, ist die Verwendung eines Tools wie <a href=\"https:\/\/kinsta.com\/de\/blog\/pingdom-speed-test\/\" target=\"_blank\" rel=\"noopener noreferrer\">Pingdom<\/a> oder Google Chrome Devtools. Der erste HTTP-Request-Header zeigt Ihnen typischerweise die Version an.<\/p>\n<figure id=\"attachment_13685\" aria-describedby=\"caption-attachment-13685\" style=\"width: 1679px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-13685 size-full\" src=\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2017\/10\/php-version-uberprufen.png\" alt=\"PHP Version \u00fcberpr\u00fcfen\" width=\"1679\" height=\"644\"><figcaption id=\"caption-attachment-13685\" class=\"wp-caption-text\">PHP Version \u00fcberpr\u00fcfen<\/figcaption><\/figure>\n<p>Dies setzt voraus, dass der Host den <code>X-Powered-By<\/code> Header-Wert nicht \u00e4ndert. Wenn dies der Fall ist, sehen Sie m\u00f6glicherweise Ihre PHP-Version nicht, in diesem Fall m\u00fcssen Sie \u00a0<a href=\"https:\/\/kinsta.com\/de\/blog\/php-versionen\/\" target=\"_blank\" rel=\"noopener noreferrer\">eine Datei per FTP hochladen<\/a>. Oder Sie k\u00f6nnen sich jederzeit an Ihren Hoster wenden und fragen.<\/p>\n<figure id=\"attachment_37448\" aria-describedby=\"caption-attachment-37448\" style=\"width: 1942px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-37448 size-full\" src=\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2018\/08\/die-php-version-in-wordpress-prufen.png\" alt=\"Die PHP version in WordPress pr\u00fcfen\" width=\"1942\" height=\"1038\"><figcaption id=\"caption-attachment-37448\" class=\"wp-caption-text\">Die PHP version in WordPress pr\u00fcfen<\/figcaption><\/figure>\n<p>Alternativ kannst du <a href=\"https:\/\/kinsta.com\/de\/blog\/php-versionen\/\">auch eine Datei per FTP hochladen<\/a>, um deine PHP-Version zu sehen, oder deinen Host kontaktieren und fragen.<\/p>\n<h3>Auf PHP 7.3 Updaten<\/h3>\n<p>Die endg\u00fcltige Version von PHP 7.3 ist noch nicht ganz fertig, aber sobald sie fertig ist, k\u00f6nnen Sie mit dem Testen der Pre-Release Version beginnen. Sie k\u00f6nnen Ihre <a href=\"https:\/\/kinsta.com\/de\/blog\/wordpress-lokal-installieren\/\" target=\"_blank\" rel=\"noopener noreferrer\">WordPress-Seite lokal testen<\/a> oder Ihre Skripte in einer Umgebung wie <a href=\"https:\/\/docs.docker.com\/get-started\/\" target=\"_blank\" rel=\"noopener noreferrer\">Docker<\/a> \u00fcberpr\u00fcfen, die es Ihnen erm\u00f6glicht, verschiedene Versionen von PHP von der Kommandozeile aus zu testen.<\/p>\n<p>Oder Sie k\u00f6nnen eine <a href=\"https:\/\/kinsta.com\/de\/docs\/wordpress-hosting\/staging-umgebung\/\" target=\"_blank\" rel=\"noopener noreferrer\">Stagingumgebung<\/a> nutzen, da diese eher einer Live-Produktionsst\u00e4tte \u00e4hnelt. Erstellen Sie mit wenigen Klicks im MyKinsta Dashboard eine Stagingumgebung.<\/p>\n<figure id=\"attachment_46499\" aria-describedby=\"caption-attachment-46499\" style=\"width: 2558px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-46499 size-full\" src=\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2018\/11\/mykinsta-creat-staging-environment.png\" alt=\"WordPress Staging Umgebung\" width=\"2558\" height=\"870\" srcset=\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2018\/11\/mykinsta-creat-staging-environment.png 2558w, https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2018\/11\/mykinsta-creat-staging-environment-300x102.png 300w, https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2018\/11\/mykinsta-creat-staging-environment-1024x348.png 1024w, https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2018\/11\/mykinsta-creat-staging-environment-768x261.png 768w, https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2018\/11\/mykinsta-creat-staging-environment-1536x522.png 1536w, https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2018\/11\/mykinsta-creat-staging-environment-2048x697.png 2048w\" sizes=\"auto, (max-width: 2558px) 100vw, 2558px\" \/><figcaption id=\"caption-attachment-46499\" class=\"wp-caption-text\">WordPress Staging Umgebung<\/figcaption><\/figure>\n<p>Wir empfehlen immer eine gr\u00fcndliche Pr\u00fcfung, bevor du es in einer Produktionsst\u00e4tte anwendest. Hierzu \u00e4ndere einfach die PHP-Engine f\u00fcr die Staging-Site unter &#8222;Tools&#8220; und du kannst mit dem Testen beginnen, um die Kompatibilit\u00e4t deiner Plugins und Designs von Drittanbietern sicherzustellen.<\/p>\n<figure id=\"attachment_47178\" aria-describedby=\"caption-attachment-47178\" style=\"width: 2560px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-47178 size-full\" src=\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2018\/11\/mykinsta-php-73.png\" alt=\"Wechseln zu PHP 7.3 RC 4\" width=\"2560\" height=\"1442\" srcset=\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2018\/11\/mykinsta-php-73.png 2560w, https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2018\/11\/mykinsta-php-73-300x169.png 300w, https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2018\/11\/mykinsta-php-73-1024x577.png 1024w, https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2018\/11\/mykinsta-php-73-768x433.png 768w, https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2018\/11\/mykinsta-php-73-1536x865.png 1536w, https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2018\/11\/mykinsta-php-73-2048x1154.png 2048w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><figcaption id=\"caption-attachment-47178\" class=\"wp-caption-text\">Wechseln zu PHP 7.3 RC 4<\/figcaption><\/figure>\n<p>Sobald du best\u00e4tigt hast, dass alles funktioniert, kannst du entweder deine Produktionsseite auf PHP 7.3 umstellen oder, wenn du irgendwelche \u00c4nderungen vorgenommen hast, auch <a href=\"https:\/\/kinsta.com\/de\/docs\/wordpress-hosting\/staging-umgebung\/#push-staging-to-live-1\">deine Staging-Seite auf Live stellen<\/a>.<\/p>\n<h2>Zusammenfassung<\/h2>\n<p>Zum jetzigen Zeitpunkt befindet sich PHP 7.3 in der RC 4 Phase, und gem\u00e4\u00df dem Zeitplan f\u00fcr die Vorbereitungsaufgaben wird es Mitte Dezember offiziell freigegeben. Es wird uns Geschenke wie flexible Heredocs und Nowdocs, Kommas in Funktionsaufrufen, <code>list()<\/code> Referenzzuweisungen und mehr bringen. In diesem Beitrag haben wir einen \u00dcberblick \u00fcber unsere Lieblingsverbesserungen und -\u00e4nderungen gegeben, aber wir m\u00f6chten auch wissen, welche Ihre Favoriten sind und auf welche Weise Sie diese nutzen werden. Lassen Sie es uns in den Kommentaren wissen. Und vergiss nicht, dass <a href=\"https:\/\/kinsta.com\/de\/blog\/ist-php-tot\/\">PHP nicht tot ist<\/a>!<\/p>\n\n<p>Die vollst\u00e4ndige Liste der PHP 7.3 Vorschl\u00e4ge finden Sie auf der Seite <a href=\"https:\/\/wiki.php.net\/rfc#php_73\" target=\"_blank\" rel=\"noopener noreferrer\">Requests For Comments<\/a> und den <a href=\"https:\/\/github.com\/php\/php-src\/blob\/php-7.3.0beta1\/UPGRADING\" target=\"_blank\" rel=\"noopener noreferrer\">PHP 7.3 Upgrade Notes<\/a> von Github.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ab dem 6. Dezember 2018 ist die neueste und beste Version, PHP 7.3, verf\u00fcgbar! Mit ihr kommen neue n\u00fctzliche Funktionen, Funktionalit\u00e4ten, Verwerfungen, eine ganze Reihe von &#8230;<\/p>\n","protected":false},"author":36,"featured_media":21104,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[38,28],"topic":[971],"class_list":["post-21096","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-php","tag-webdev","topic-php-updates"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>PHP 7.3 \u2013 Was ist neu? (RC ist jetzt bei Kinsta verf\u00fcgbar)<\/title>\n<meta name=\"description\" content=\"PHP 7.3 klopft an unsere T\u00fcr und mit ihm kommen neue Funktionen, Verwerfungen und Bugfixes. Sehen Sie sich diese ausf\u00fchrliche \u00dcbersicht \u00fcber die Neuerungen in PHP 7.3 an!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/de\/blog\/php-7-3\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PHP 7.3 \u2013 Was ist neu? (Ist jetzt bei Kinsta verf\u00fcgbar)\" \/>\n<meta property=\"og:description\" content=\"PHP 7.3 klopft an unsere T\u00fcr und mit ihm kommen neue Funktionen, Verwerfungen und Bugfixes. Sehen Sie sich diese ausf\u00fchrliche \u00dcbersicht \u00fcber die Neuerungen in PHP 7.3 an!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/de\/blog\/php-7-3\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/\" \/>\n<meta property=\"article:published_time\" content=\"2018-11-13T11:00:12+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-08-21T08:14:33+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2018\/11\/php-7-3.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"730\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Carlo Daniele\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"PHP 7.3 klopft an unsere T\u00fcr und mit ihm kommen neue Funktionen, Verwerfungen und Bugfixes. Sehen Sie sich diese ausf\u00fchrliche \u00dcbersicht \u00fcber die Neuerungen in PHP 7.3 an!\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2018\/11\/php-7-3.png\" \/>\n<meta name=\"twitter:creator\" content=\"@carlodaniele\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_DE\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Carlo Daniele\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"18\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/php-7-3\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/php-7-3\/\"},\"author\":{\"name\":\"Carlo Daniele\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63\"},\"headline\":\"PHP 7.3 \u2013 Was ist neu? (Ist jetzt bei Kinsta verf\u00fcgbar)\",\"datePublished\":\"2018-11-13T11:00:12+00:00\",\"dateModified\":\"2023-08-21T08:14:33+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/php-7-3\/\"},\"wordCount\":3534,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/de\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/php-7-3\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2018\/11\/php-7-3.png\",\"keywords\":[\"php\",\"webdev\"],\"articleSection\":[\"WordPress Entwicklung\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/de\/blog\/php-7-3\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/php-7-3\/\",\"url\":\"https:\/\/kinsta.com\/de\/blog\/php-7-3\/\",\"name\":\"PHP 7.3 \u2013 Was ist neu? (RC ist jetzt bei Kinsta verf\u00fcgbar)\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/php-7-3\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/php-7-3\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2018\/11\/php-7-3.png\",\"datePublished\":\"2018-11-13T11:00:12+00:00\",\"dateModified\":\"2023-08-21T08:14:33+00:00\",\"description\":\"PHP 7.3 klopft an unsere T\u00fcr und mit ihm kommen neue Funktionen, Verwerfungen und Bugfixes. Sehen Sie sich diese ausf\u00fchrliche \u00dcbersicht \u00fcber die Neuerungen in PHP 7.3 an!\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/php-7-3\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/de\/blog\/php-7-3\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/php-7-3\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2018\/11\/php-7-3.png\",\"contentUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2018\/11\/php-7-3.png\",\"width\":1460,\"height\":730,\"caption\":\"PHP 7.3\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/php-7-3\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/de\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PHP-Updates\",\"item\":\"https:\/\/kinsta.com\/de\/thema\/php-updates\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"PHP 7.3 \u2013 Was ist neu? (Ist jetzt bei Kinsta verf\u00fcgbar)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/de\/#website\",\"url\":\"https:\/\/kinsta.com\/de\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Schnelle, sichere und hochwertige Hosting-L\u00f6sungen\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/de\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/de\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/de\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/de\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/\",\"https:\/\/x.com\/Kinsta_DE\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63\",\"name\":\"Carlo Daniele\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/429e5568f88110fd9a409b84cb22197e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/429e5568f88110fd9a409b84cb22197e?s=96&d=mm&r=g\",\"caption\":\"Carlo Daniele\"},\"description\":\"Carlo is a passionate lover of webdesign and front-end development. He has been playing with WordPress for more than 20 years, also in collaboration with Italian and European universities and educational institutions. He has written hundreds of articles and guides about WordPress, published both on Italian and international websites, as well as on printed magazines. You can find him on LinkedIn.\",\"sameAs\":[\"https:\/\/frammentidicodice.com\/\",\"https:\/\/x.com\/carlodaniele\"],\"url\":\"https:\/\/kinsta.com\/de\/blog\/author\/carlodaniele\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"PHP 7.3 \u2013 Was ist neu? (RC ist jetzt bei Kinsta verf\u00fcgbar)","description":"PHP 7.3 klopft an unsere T\u00fcr und mit ihm kommen neue Funktionen, Verwerfungen und Bugfixes. Sehen Sie sich diese ausf\u00fchrliche \u00dcbersicht \u00fcber die Neuerungen in PHP 7.3 an!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/de\/blog\/php-7-3\/","og_locale":"de_DE","og_type":"article","og_title":"PHP 7.3 \u2013 Was ist neu? (Ist jetzt bei Kinsta verf\u00fcgbar)","og_description":"PHP 7.3 klopft an unsere T\u00fcr und mit ihm kommen neue Funktionen, Verwerfungen und Bugfixes. Sehen Sie sich diese ausf\u00fchrliche \u00dcbersicht \u00fcber die Neuerungen in PHP 7.3 an!","og_url":"https:\/\/kinsta.com\/de\/blog\/php-7-3\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/","article_published_time":"2018-11-13T11:00:12+00:00","article_modified_time":"2023-08-21T08:14:33+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2018\/11\/php-7-3.png","type":"image\/png"}],"author":"Carlo Daniele","twitter_card":"summary_large_image","twitter_description":"PHP 7.3 klopft an unsere T\u00fcr und mit ihm kommen neue Funktionen, Verwerfungen und Bugfixes. Sehen Sie sich diese ausf\u00fchrliche \u00dcbersicht \u00fcber die Neuerungen in PHP 7.3 an!","twitter_image":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2018\/11\/php-7-3.png","twitter_creator":"@carlodaniele","twitter_site":"@Kinsta_DE","twitter_misc":{"Verfasst von":"Carlo Daniele","Gesch\u00e4tzte Lesezeit":"18\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/de\/blog\/php-7-3\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/de\/blog\/php-7-3\/"},"author":{"name":"Carlo Daniele","@id":"https:\/\/kinsta.com\/de\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63"},"headline":"PHP 7.3 \u2013 Was ist neu? (Ist jetzt bei Kinsta verf\u00fcgbar)","datePublished":"2018-11-13T11:00:12+00:00","dateModified":"2023-08-21T08:14:33+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/de\/blog\/php-7-3\/"},"wordCount":3534,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/de\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/de\/blog\/php-7-3\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2018\/11\/php-7-3.png","keywords":["php","webdev"],"articleSection":["WordPress Entwicklung"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/de\/blog\/php-7-3\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/de\/blog\/php-7-3\/","url":"https:\/\/kinsta.com\/de\/blog\/php-7-3\/","name":"PHP 7.3 \u2013 Was ist neu? (RC ist jetzt bei Kinsta verf\u00fcgbar)","isPartOf":{"@id":"https:\/\/kinsta.com\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/de\/blog\/php-7-3\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/de\/blog\/php-7-3\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2018\/11\/php-7-3.png","datePublished":"2018-11-13T11:00:12+00:00","dateModified":"2023-08-21T08:14:33+00:00","description":"PHP 7.3 klopft an unsere T\u00fcr und mit ihm kommen neue Funktionen, Verwerfungen und Bugfixes. Sehen Sie sich diese ausf\u00fchrliche \u00dcbersicht \u00fcber die Neuerungen in PHP 7.3 an!","breadcrumb":{"@id":"https:\/\/kinsta.com\/de\/blog\/php-7-3\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/de\/blog\/php-7-3\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kinsta.com\/de\/blog\/php-7-3\/#primaryimage","url":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2018\/11\/php-7-3.png","contentUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2018\/11\/php-7-3.png","width":1460,"height":730,"caption":"PHP 7.3"},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/de\/blog\/php-7-3\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/de\/"},{"@type":"ListItem","position":2,"name":"PHP-Updates","item":"https:\/\/kinsta.com\/de\/thema\/php-updates\/"},{"@type":"ListItem","position":3,"name":"PHP 7.3 \u2013 Was ist neu? (Ist jetzt bei Kinsta verf\u00fcgbar)"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/de\/#website","url":"https:\/\/kinsta.com\/de\/","name":"Kinsta\u00ae","description":"Schnelle, sichere und hochwertige Hosting-L\u00f6sungen","publisher":{"@id":"https:\/\/kinsta.com\/de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/de\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/","https:\/\/x.com\/Kinsta_DE","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/de\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63","name":"Carlo Daniele","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kinsta.com\/de\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/429e5568f88110fd9a409b84cb22197e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/429e5568f88110fd9a409b84cb22197e?s=96&d=mm&r=g","caption":"Carlo Daniele"},"description":"Carlo is a passionate lover of webdesign and front-end development. He has been playing with WordPress for more than 20 years, also in collaboration with Italian and European universities and educational institutions. He has written hundreds of articles and guides about WordPress, published both on Italian and international websites, as well as on printed magazines. You can find him on LinkedIn.","sameAs":["https:\/\/frammentidicodice.com\/","https:\/\/x.com\/carlodaniele"],"url":"https:\/\/kinsta.com\/de\/blog\/author\/carlodaniele\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts\/21096","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/users\/36"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/comments?post=21096"}],"version-history":[{"count":17,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts\/21096\/revisions"}],"predecessor-version":[{"id":57709,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts\/21096\/revisions\/57709"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/21096\/translations\/en"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/21096\/translations\/es"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/21096\/translations\/it"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/21096\/translations\/fr"},{"embeddable":true,"hreflang":"sv","title":"Swedish","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/21096\/translations\/se"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/21096\/translations\/pt"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/21096\/translations\/nl"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/21096\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/21096\/translations\/jp"},{"embeddable":true,"hreflang":"da","title":"Danish","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/21096\/translations\/dk"},{"href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/21096\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/media\/21104"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/media?parent=21096"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/tags?post=21096"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/topic?post=21096"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}