{"id":23566,"date":"2019-06-20T23:57:09","date_gmt":"2019-06-20T21:57:09","guid":{"rendered":"https:\/\/kinsta.com\/?p=46699"},"modified":"2023-05-22T14:20:25","modified_gmt":"2023-05-22T12:20:25","slug":"php-7-4","status":"publish","type":"post","link":"https:\/\/kinsta.com\/nl\/blog\/php-7-4\/","title":{"rendered":"Wat is nieuw in PHP 7.4? (Functies, afschrijvingen, snelheid)"},"content":{"rendered":"<p>PHP 7.4 is de meest recente (minor) release en is voor algemene beschikbaarheid uitgegeven op 28 november 2019. Hoog tijd om eens goed te kijken naar een aantal van de meest interessante toevoegingen en nieuwe features die PHP sneller en betrouwbaar maken.<\/p>\n<p><strong>Update:<\/strong> <a href=\"https:\/\/kinsta.com\/nl\/changelog\/php-8-1\/\">PHP 8.1 (offici\u00eble release)<\/a> is nu beschikbaar voor alle Kinsta klanten. PHP 7.4 wordt niet langer ondersteund door Kinsta. Houd er rekening mee dat we PHP versies 7.4, 8.0, 8.1, 8.2, 8.3, 8.4 en 8.5 ondersteunen.<\/p>\n<p>PHP 7.4 geeft een enorme boost in performance en leesbaarheid van code en wordt beschouwd als een tussenstap naar <a href=\"https:\/\/kinsta.com\/nl\/blog\/php-8\/\">PHP 8<\/a>. Voor deze laatste versie zijn de verwachtingen hooggespannen, helemaal wat betreft performance, omdat <a href=\"https:\/\/wiki.php.net\/rfc\/jit\">de opname van JIT<\/a> al is goedgekeurd.<\/p>\n<p>Hoe dan ook, vandaag bespreken we meest interessante functies en veranderingen die we kunnen verwachten van PHP 7.4. Dit waren de belangrijkste datums voor versie 7.4:<\/p>\n<ul>\n<li>6 juni 2019: PHP 7.4 Alpha 1<\/li>\n<li>18 juli: PHP 7.4 Beta 1 &#8211; Feature freeze<\/li>\n<li>28 november 2019: PHP 7.4 GA Release<\/li>\n<\/ul>\n<p>De volledige lijst met features en toevoegingen kan je vinden op <a href=\"https:\/\/wiki.php.net\/rfc#php_74\">de offici\u00eble RFC-pagina<\/a> vinden.<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>Wat is nieuw in PHP in PHP 7.4?<\/h2>\n<p>In dit artikel bespreken we een aantal veranderingen en features die aan de taal worden toegevoegd wanneer de definitieve versie van PHP 7.4 wordt uitgebracht:<\/p>\n<div><\/div><kinsta-auto-toc list-style=\"disc\" selector=\"h3\" count-number=\"9\" sub-toc=\"true\"><\/kinsta-auto-toc>\n<h3 id=\"array-spread-operator\">Vergeet array_merge: PHP 7.4 introduceert Spread Operator in Array Expression<\/h3>\n<p><a href=\"https:\/\/wiki.php.net\/rfc\/argument_unpacking\">Argument unpacking<\/a> is een syntax die sinds PHP 5.6 gebruikt kan worden om arrays en <a href=\"https:\/\/www.php.net\/manual\/en\/class.traversable.php\">Traversables <\/a>\u00a0uit te pakken in argumentlijsten. Om een array of een Traversable uit te pakken, moet deze worden voorafgegaan door &#8230; (3 punten), zoals je in het onderstaande voorbeeld kan zien:<\/p>\n<pre><code class=\"language-php\">function test(...$args) { var_dump($args); }\ntest(1, 2, 3);<\/code><\/pre>\n<p>In <a href=\"https:\/\/wiki.php.net\/rfc\/spread_operator_for_array\">PHP 7.4 RFC<\/a> staat het voorstel om deze feature uit te breiden naar array definitions<\/p>\n<pre><code class=\"language-php\">$arr = [...$args];<\/code><\/pre>\n<p>Het eerste voordeel van het gebruik van <strong>Spread Operator in array expression<\/strong> heeft te maken met de performance. Dit is <a href=\"https:\/\/wiki.php.net\/rfc\/spread_operator_for_array\">wat het RFC-document vermeldt<\/a>:<\/p>\n<blockquote><p>Spread operator zou voor betere prestaties zorgen dan <code>array_merge<\/code>. Dat is niet alleen omdat spread operator een taalstructuur is en <code>array_merge<\/code> een functie is, maar ook omdat de optimalisatie van compilatietijd kan worden gebruikt voor constant arrays.<\/p><\/blockquote>\n<p>Een belangrijk voordeel van Spread operator is dat deze alle verplaatsbare objecten ondersteunt, terwijl de <code>array_merge<\/code> functie alleen arrays ondersteunt.<\/p>\n<p>Hier is een voorbeeld van argument unpacking in array expression:<\/p>\n<pre><code class=\"language-php\">$parts = ['apple', 'pear'];\n$fruits = ['banana', 'orange', ...$parts, 'watermelon'];\nvar_dump($fruits);<\/code><\/pre>\n<p>Als je deze code uitvoert met PHP 7.3 of lager, dan krijg je een PHP Parse-error:<\/p>\n<pre><code class=\"language-php\">Parse error: syntax error, unexpected '...' (T_ELLIPSIS), expecting ']' in \/app\/spread-operator.php on line 3<\/code><\/pre>\n<p>In PHP 7.4 krijg je echter een array terug:<\/p>\n<pre><code class=\"language-php\">array(5) {\n\t[0]=&gt;\n\tstring(6) \"banana\"\n\t[1]=&gt;\n\tstring(6) \"orange\"\n\t[2]=&gt;\n\tstring(5) \"apple\"\n\t[3]=&gt;\n\tstring(4) \"pear\"\n\t[4]=&gt;\n\tstring(10) \"watermelon\"\n}<\/code><\/pre>\n<p>De RFC meldt verder dat we deze array ook meerdere keren kunnen uitbreiden. We kunnen de Spread Operator-syntax overal binnen de array gebruiken, omdat normale elementen v\u00f3\u00f3r of na de spread operator kunnen worden toegevoegd. Dus de volgende code werkt zoals we kunnen verwachten:<\/p>\n<pre><code class=\"language-php\">$arr1 = [1, 2, 3];\n$arr2 = [4, 5, 6];\n$arr3 = [...$arr1, ...$arr2];\n$arr4 = [...$arr1, ...$arr3, 7, 8, 9];<\/code><\/pre>\n<p>Het is ook mogelijk om een array, die door een functie is geretourneerd, direct uit te pakken in een nieuwe array:<\/p>\n<pre><code class=\"language-php\">function buildArray(){\n\treturn ['red', 'green', 'blue'];\n}\n$arr1 = [...buildArray(), 'pink', 'violet', 'yellow'];<\/code><\/pre>\n<p>In PHP 7.4 krijg je dan de volgende array:<\/p>\n<pre><code class=\"language-php\">array(6) {\n\t[0]=&gt;\n\tstring(3) \"red\"\n\t[1]=&gt;\n\tstring(5) \"green\"\n\t[2]=&gt;\n\tstring(4) \"blue\"\n\t[3]=&gt;\n\tstring(4) \"pink\"\n\t[4]=&gt;\n\tstring(6) \"violet\"\n\t[5]=&gt;\n\tstring(6) \"yellow\"\n}<\/code><\/pre>\n<p>We kunnen ook de <a href=\"https:\/\/www.php.net\/manual\/en\/language.generators.syntax.php\">generator syntax<\/a> gebruiken:<\/p>\n<pre><code class=\"language-php\">function generator() {\n\tfor ($i = 3; $i &lt;= 5; $i++) {\n\t\tyield $i;\n\t}\n}\n$arr1 = [0, 1, 2, ...generator()];<\/code><\/pre>\n<p>Echter, het is niet toegestaan om arrays uit de pakken die zijn doorgegeven door een verwijzing. In het volgende voorbeeld leg ik het uit:<\/p>\n<pre><code class=\"language-php\">$arr1 = ['red', 'green', 'blue'];\n$arr2 = [...&$arr1];<\/code><\/pre>\n<p>Als we nu een array willen uitpakken door te verwijzen, dan genereert PHP de volgende Parse-error:<\/p>\n<pre><code class=\"language-php\">Parse error: syntax error, unexpected '&' in \/app\/spread-operator.php on line 3<\/code><\/pre>\n<p>Als de elementen van de eerste array door verwijzing zijn opgeslagen, worden ze ook door verwijzing in de tweede array opgeslagen. Hier is een voorbeeld:<\/p>\n<pre><code class=\"language-php\">$arr0 = 'red';\n$arr1 = [&$arr0, 'green', 'blue'];\n$arr2 = ['white', ...$arr1, 'black'];<\/code><\/pre>\n<p>Dit is wat we krijgen met PHP 7.4:<\/p>\n<pre><code>array(5) {\n\t[0]=&gt;\n\tstring(5) \"white\"\n\t[1]=&gt;\n\t<strong>&string(3) \"red\"<\/strong>\n\t[2]=&gt;\n\tstring(5) \"green\"\n\t[3]=&gt;\n\tstring(4) \"blue\"\n\t[4]=&gt;\n\tstring(5) \"black\"\n}<\/code><\/pre>\n<p>Het voorstel om Spread operator toe te voegen was goedgekeurd met 43 stemmen voor en 1 stem tegen.<\/p>\n<h3 id=\"arrow-functions\">Arrow Functions 2.0 (Short Closures)<\/h3>\n<p>In PHP worden <a href=\"https:\/\/www.php.net\/manual\/en\/functions.anonymous.php\">anonieme functies<\/a> vaak beschouwd als moeilijk te begrijpen en lastig in te voeren en te onderhouden. <a href=\"https:\/\/wiki.php.net\/rfc\/arrow_functions_v2\">Deze RFC<\/a> stelt voor om de kortere syntax van de <strong>arrow functies<\/strong> (of short closures) te introduceren. Hiermee zou je je PHP-code flink kunnen opschonen.<\/p>\n<p>In het volgende voorbeeld leg ik het uit:<\/p>\n<pre><code class=\"language-php\">function cube($n){\n\treturn ($n * $n * $n);\n}\n$a = [1, 2, 3, 4, 5];\n$b = array_map('cube', $a);\nprint_r($b);<\/code><\/pre>\n<p>PHP 7.4 maakt het gebruik van een meer beknopte syntax mogelijk en de bovenstaande functie kan als volgt worden herschreven:<\/p>\n<pre><code class=\"language-php\">$a = [1, 2, 3, 4, 5];\n$b = array_map(fn($n) =&gt; $n * $n * $n, $a);\nprint_r($b);<\/code><\/pre>\n<p>Momenteel kunnen <a href=\"https:\/\/www.php.net\/manual\/en\/functions.anonymous.php\">anonieme functies<\/a> (closures) de variabelen die zijn gedefinieerd in de parent scope inheritten. Dit doen ze met behulp van de use taalconstructie, zoals je hieronder kan zien:<\/p>\n<pre><code class=\"language-php\">$factor = 10;\n$calc = function($num) use($factor){\n\treturn $num * $factor;\n};<\/code><\/pre>\n<p>Echter, met PHP 7.4 worden de variabelen die zijn gedefinieerd in de parent scope, <strong>impliciet vastgelegd op waarde<\/strong> (implicit by-value scope binding). We kunnen dus de hele functie die je boven zag, als volgt schrijven:<\/p>\n<pre><code class=\"language-php\">$factor = 10;\n$calc = fn($num) =&gt; $num * $factor;<\/code><\/pre>\n<p>De variabele die is gedefinieerd in de parent scope kan gebruikt worden in de arrow functie, alsof we gebruik maken van <code class=\"language-php\">use($var)<\/code> en het is niet mogelijk om een variabele van de parent scope te wijzigen.<\/p>\n<p>De nieuwe syntax is een grote verbetering van de taal, omdat de code beter leesbaar en te onderhouden is. We kunnen ook <a href=\"https:\/\/kinsta.com\/nl\/blog\/php-7-2\/\">parameter en return types<\/a> gebruiken, standaard waarden, argumentlijsten met variabele lengtes (<a href=\"https:\/\/en.wikipedia.org\/wiki\/Variadic_function\">variadic functions<\/a>), we kunnen pass en return door verwijzing, etc. Ten slotte kunnen short closures ook gebruikt worden in class methodes en maken ze net als normale closures gebruik van de $this variabele.<\/p>\n<p>Deze RFC is goedgekeurd met 51 tegen 8 stemmen en kunnen deze daarom verwachten in de lijst met toevoegingen van PHP 7.4.<\/p>\n<h3 id=\"nulled-coalesce-assign-operator\">Null Coalescing Assignment Operator<\/h3>\n<p>De <a href=\"https:\/\/www.php.net\/manual\/en\/migration70.new-features.php#migration70.new-features.null-coalesce-op\">coalesce operator<\/a> (<code>??<\/code>), toegevoegd met PHP 7, komt van pas wanneer we een ternary operator moeten gebruiken in combinatie met <code>isset()<\/code>. Het retourneert de eerste operand, mits deze bestaat en niet <code>NULL<\/code> is. Anders wordt de tweede operand geretourneerd. Hier is een voorbeeld:<\/p>\n<pre><code class=\"language-php\">$username = $_GET['user'] ?? 'nobody';<\/code><\/pre>\n<p>Wat deze code doet is redelijk eenvoudig: <strong>hij haalt de aangevraagde parameter op en stelt een standaardwaarde in als deze niet bestaat<\/strong>. De bovenstaande lijn met code is vrij eenvoudig, maar wat nou als we het voorbeeld van de RFC nemen, een die een veel meer variabele namen heeft?<\/p>\n<pre><code class=\"language-php\">$this-&gt;request-&gt;data['comments']['user_id'] = $this-&gt;request-&gt;data['comments']['user_id'] ?? 'value';<\/code><\/pre>\n<p>Op de lange termijn is deze lijn met code lastig te onderhouden. Met de introductie van de <strong>null coalescing assignment operator<\/strong> \u00a0(<code>??=<\/code>) wil deze <a href=\"https:\/\/wiki.php.net\/rfc\/null_coalesce_equal_operator\">RFC\u00a0<\/a> het voor ontwikkelaars mogelijk maken om intu\u00eftiever code te schrijven. Dus in plaats van de bovenstaande code te schrijven, kunnen we nu het volgende schrijven:<\/p>\n<pre><code class=\"language-php\">$this-&gt;request-&gt;data['comments']['user_id'] ??= 'value';<\/code><\/pre>\n<p>Als de waarde van de linker parameter <code>null<\/code> is, dan wordt de waarde van de rechter parameter gebruikt.<br \/>\nLet wel op: de coalesce operator is een comparison operator, <code>??=<\/code> is een assignment operator.<\/p>\n<p>Dit voorstel heeft het gehaald met 37 stemmen voor en 4 stemmen tegen.<\/p>\n<h3 id=\"typed-properties\">Typed Properties 2.0<\/h3>\n<p>Argument type declarations, ook wel type hints genoemd, maken het mogelijk om het type van een variabele te specificeren, die naar verwachting wordt doorgegeven aan een functie of een class method. Type hints bestaan al sinds PHP 5 en sinds <a href=\"https:\/\/kinsta.com\/nl\/blog\/php-7-2\/\">PHP 7.2<\/a> is het ook mogelijk om deze te gebruiken samen met het object data type. Type hints krijgen met PHP 7.4 een enorme boost door de support voor <a href=\"https:\/\/wiki.php.net\/rfc\/typed_properties_v2\">first-class property type declarations<\/a> mogelijk te maken. Hieronder een erg simpel voorbeeld:<\/p>\n<pre><code class=\"language-php\">class User {\n\tpublic int $id;\n\tpublic string $name;\n}<\/code><\/pre>\n<p>Alle typen worden ondersteund, met uitzondering van <code>void<\/code> en <code>callable<\/code>:<\/p>\n<pre><code class=\"language-php\">public int $scalarType;\nprotected ClassName $classType;\nprivate ?ClassName $nullableClassType;<\/code><\/pre>\n<p>De RFC legt de reden uit waarom <code>void<\/code> en <code>callable<\/code> niet worden ondersteund:<\/p>\n<blockquote><p>Het void type wordt niet ondersteund, omdat dit niet zinvol is en een onduidelijke semantiek heeft.<\/p><\/blockquote>\n<blockquote><p>Het callable type wordt niet ondersteund, omdat zijn gedrag contextafhankelijk is.<\/p><\/blockquote>\n<p>We kunnen dus veilig gebruiken: <code>bool<\/code>, <code>int<\/code>, <code>float<\/code>, <code>string<\/code>, <code>array<\/code>, <code>object<\/code>, <code>iterable<\/code>, <code>self<\/code>, <code>parent<\/code>, de naam van een class of interface, en\u00a0<a href=\"https:\/\/kinsta.com\/blog\/php-7-1-0\/#nullable-types\">nullable<\/a>\u00a0<a href=\"https:\/\/php.net\/manual\/en\/migration71.new-features.php\">types<\/a> (<code>?type<\/code>).<\/p>\n<p>Types kunnen gebruikt worden op statische properties:<\/p>\n<pre><code class=\"language-php\">public static iterable $staticProp;<\/code><\/pre>\n<p>Ook is het mogelijk ze te gebruiken met de <code>var<\/code> notatie.<\/p>\n<pre><code class=\"language-php\">var bool $flag;<\/code><\/pre>\n<p>Het is mogelijk om standaard property values in te stellen, die natuurlijk overeen moeten komen met het gedeclareerde property type, maar alleen nullable properties kunnen een standaard <code>null<\/code> waarde hebben:<\/p>\n<pre><code class=\"language-php\">public string $str = \"foo\";\npublic ?string $nullableStr = null;<\/code><\/pre>\n<p>Hetzelfde type is van toepassing op alle eigenschappen binnen \u00e9\u00e9n enkele declaratie:<\/p>\n<pre><code class=\"language-php\">public float $x, $y;<\/code><\/pre>\n<p>Wat gebeurt er als je een fout maakt in het property type? Bekijk de volgende code:<\/p>\n<pre><code class=\"language-php\">class User {\n\tpublic int $id;\n\tpublic string $name;\n}\n\n$user = new User;\n$user-&gt;id = 10;\n$user-&gt;name = [];<\/code><\/pre>\n<p>In de code hierboven hebben we een string property type vastgelegd, maar een array als property value ingesteld. In een dergelijk scenario krijgen we de volgende Fatal error:<\/p>\n<pre><code class=\"language-php\">Fatal error: Uncaught TypeError: Typed property User::$name must be string, array used in \/app\/types.php:9<\/code><\/pre>\n<p>Deze RFC is goedgekeurd met 70 tegen 1 stemmen.<\/p>\n\n<h3 id=\"weakreferences\">Weak References<\/h3>\n<p>Met <a href=\"https:\/\/wiki.php.net\/rfc\/weakrefs\">deze RFC<\/a> introduceert PHP 7.4 de class <a href=\"https:\/\/www.php.net\/manual\/en\/class.weakreference.php\">WeakReference<\/a>, waarmee programmeurs een verwijzing naar een object kunnen behouden zonder dat die verhindert het object zelf wordt vernietigd.<\/p>\n<p>Momenteel ondersteunt PHP Weak References door een extensie als pecl-weakref te gebruiken. De nieuwe API anders dan de gedocumenteerde WeakRef class.<\/p>\n<p>Hier is een <a href=\"https:\/\/www.slideshare.net\/nikita_ppv\/typed-properties-and-more-whats-coming-in-php-74\">voorbeeld van de auteur<\/a> van dit voorstel, Nikita Popov:<\/p>\n<pre><code class=\"language-php\">$object = new stdClass;\n$weakRef = WeakReference::create($object);\n\nvar_dump($weakRef-&gt;get());\nunset($object);\nvar_dump($weakRef-&gt;get());<\/code><\/pre>\n<p>De eerste <code>var_dump<\/code> print <code class=\"language-php\">object(stdClass)#1 (0) {}<\/code>, terwijl de tweede <code>var_dump<\/code> zorgt voor <code>NULL<\/code>,\u00a0 omdat het object waarnaar verwezen wordt, is verwijderd.<\/p>\n<p>Deze RFC is aangenomen met 28 tegen 5 stemmen.<\/p>\n<h3 id=\"covariant-return-types-contravariant-parameters\">Covariant Returns en Contravariant Parameters<\/h3>\n<p><a href=\"https:\/\/en.wikipedia.org\/wiki\/Covariance_and_contravariance_(computer_science)\">Variance<\/a> is een eigenschap van class hi\u00ebrarchie\u00ebn die beschrijven hoe de types van een type constructor <a href=\"https:\/\/en.wikipedia.org\/wiki\/Subtyping\">subtypen<\/a> be\u00efnvloeden. Over het algemeen kan een type constructor het volgende zijn:<\/p>\n<ul>\n<li><strong>Invariant<\/strong>: als het type van het super-type het type van het sub-type beperkt.<\/li>\n<li><strong>Covariant<\/strong>: als de volgorde van typen wordt behouden (types worden van meer specifiek naar meer generiek gesorteerd).<\/li>\n<li><strong>Contravariant<\/strong>: als het de volgorde omkeert (types worden geordend van meer generiek naar meer specifiek).<\/li>\n<\/ul>\n<p>Momenteel heeft PHP vooral invariant parameters en return types, met enkele uitzonderingen. Deze RFC stelt voor om ook covariance en contravariance toe te staan op parameter types en return types, waarbij ze ook een aantal voorbeelden geven.<\/p>\n<p>Hier is een voorbeeld van <strong>covariant return type<\/strong>:<\/p>\n<pre><code class=\"language-php\">interface Factory {\n\tfunction make(): object;\n}\n\nclass UserFactory implements Factory {\n\tfunction make(): User;\n}<\/code><\/pre>\n<p>En hier is een voorbeeld van <strong>contravariant parameter type<\/strong>:<\/p>\n<pre><code class=\"language-php\">interface Concatable {\n\tfunction concat(Iterator $input); \n}\n \nclass Collection implements Concatable {\n\t\/\/ accepts all iterables, not just Iterator\n\tfunction concat(iterable $input) {\/* . . . *\/}\n}<\/code><\/pre>\n<p>Lees <a href=\"https:\/\/wiki.php.net\/rfc\/covariant-returns-and-contravariant-parameters\">de RFC<\/a> voor een nadere beschouwing van covariance en contravariance in PHP 7.4.<\/p>\n<p>Deze RFC is aangenomen met 39 tegen 1 stemmen.<\/p>\n<h3 id=\"preloading\">Preloading<\/h3>\n<p><a href=\"https:\/\/wiki.php.net\/rfc\/preload\">Het voorstel van Dmitry Stogov<\/a> is een van onze favorieten, omdat het voor een aanzienlijke performanceboost zal zorgen. <strong>Preloading<\/strong> is het proces van het laden van bibliotheken en frameworks in de <a href=\"https:\/\/www.php.net\/manual\/en\/book.opcache.php\">OPCache<\/a> bij module-initialisatie (lees hier meer over de <a href=\"http:\/\/www.phpinternalsbook.com\/php7\/extensions_design\/php_lifecycle.html\">PHP lifecycle<\/a>)<\/p>\n<figure style=\"width: 335px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2019\/05\/php-lifecycle.png\" alt=\"PHP lifecycle\" width=\"335\" height=\"323\"><figcaption class=\"wp-caption-text\">PHP lifecycle (Afbeeldingsbron: <a href=\"https:\/\/phpinternals.net\/categories\/extensions\">PHP Internals<\/a>)<\/figcaption><\/figure>\n<p>Dit is hoe preloading werkt &#8211; in de woorden van Dmitry:<\/p>\n<blockquote><p>Bij het opstarten van de server &#8211; voordat de eerste applicatiecode wordt uitgevoerd &#8211; kunnen we een bepaalde reeks PHP-bestanden in het geheugen laden &#8211; en de inhoud ervan &#8220;permanent beschikbaar&#8221; maken voor alle volgende aanvragen die door die server worden geleverd. Alle functies en classes die in deze bestanden zijn gedefinieerd, zijn direct beschikbaar voor verzoeken, precies zoals interne entiteiten.<\/p><\/blockquote>\n<p>Deze bestanden worden bij het opstarten van de server geladen, worden nog v\u00f3\u00f3r de eerste applicatie uitgevoerd en blijven beschikbaar voor elk toekomstig verzoek. Voor prestaties is dit geweldig.<\/p>\n<p>Preloading wordt beheerd door een specifieke <code>php.ini<\/code> richtlijn: <code>opcache.preload<\/code>. Deze richtlijn specificeert een PHP-script dat moet worden gecompileerd en uitgevoerd bij het opstarten van de server. Dit bestand kan ook worden gebruikt om extra bestanden te preloaden, door ze toe te voegen of via de functie <code>opcache_compile_file ()<\/code> (lees meer in de <a href=\"https:\/\/www.php.net\/manual\/en\/function.opcache-compile-file.php\">PHP-documentatie<\/a>).<\/p>\n<p>Er is echter wel een nadeel. Deze wordt ook duidelijk vermeld in de RFC:<\/p>\n<blockquote><p>De voorgeladen bestanden blijven voor altijd in het opcache-geheugen opgeslagen. Het wijzigen van hun bijbehorende bronbestanden zal geen effect hebben zonder het opnieuw opstarten van de server.<\/p><\/blockquote>\n<p>Alle functies die zijn gedefinieerd in vooraf geladen bestanden worden echter permanent geladen in PHP function en class tables en blijven beschikbaar voor elk toekomstig verzoek. Dit zal ongetwijfeld leiden tot significante prestatieverbeteringen, zelfs al zijn deze verbetering aanzienlijk variabel.<\/p>\n<p>Je kan in de offici\u00eble <a href=\"https:\/\/wiki.php.net\/rfc\/preload\">Preloading RFC-pagina<\/a> meer lezen over de beperkingen en uitzonderingen van preloading.<\/p>\n<h3 id=\"serialization\">Nieuwe aangepaste Object Serialization Mechanism (SPL)<\/h3>\n<p>Er is nog een <a href=\"https:\/\/nikic.github.io\/aboutMe.html\">ander voorstel<\/a> van Nikita Popov die met een overweldigende meerderheid is aangenomen.<\/p>\n<p>Momenteel hebben we twee verschillende mechanismen voor aangepaste serialisatie van objecten in PHP:<\/p>\n<ul>\n<li>De <code>__sleep()<\/code> and <code>__wakeup()<\/code> magic methods<\/li>\n<li>De <code>Serializable<\/code> interface<\/li>\n<\/ul>\n<p>Volgens Nikita kennen beide opties problemen die leiden tot complexe en onbetrouwbare code. Je kan meer lezen over dit onderwerp in het <a href=\"https:\/\/wiki.php.net\/rfc\/custom_object_serialization\">RFC<\/a>. In dit geval wil ik alleen vermelden dat het nieuwe serialisatiemechanisme deze problemen zou moeten voorkomen door twee nieuwe magic methods aan te bieden die de twee bestaande mechanismen combineren: <code>__serialize()<\/code>\u00a0en\u00a0<code>__unserialize()<\/code>.<\/p>\n<p>Dit voorstel werd aangenomen met 20 tegen 7 stemmen.<\/p>\n<h3 id=\"deprecations\">Afschaffingen<\/h3>\n<p>De volgende functies\/functionaliteiten worden afgeschreven in PHP 7.4. Raadpleeg de <a href=\"https:\/\/github.com\/php\/php-src\/blob\/PHP-7.4\/UPGRADING\">PHP 7.4 Upgrade Notes<\/a> voor een uitgebreidere lijst met afschrijvingen.<\/p>\n<h4>De precedence van de concatenation operator wijzigen<\/h4>\n<p>Momenteel zijn in PHP de &#8220;+&#8221; en &#8220;-&#8221; arithmetic operators en kent de &#8220;.&#8221; string operator dezelfde prioriteit\u00a0 (lees hier meer over <a href=\"https:\/\/www.php.net\/manual\/en\/language.operators.precedence.php\">Operator Precedence<\/a>).<\/p>\n<p>Bekijk de volgende regels eens:<\/p>\n<pre><code class=\"language-php\">echo \"sum: \" . $a + $b;<\/code><\/pre>\n<p>In PHP 7.3 geeft deze code de volgende waarschuwing:<\/p>\n<pre><code class=\"language-php\">Warning: A non-numeric value encountered in \/app\/types.php on line 4<\/code><\/pre>\n<p>Dit omdat de aaneenschakeling van links naar rechts wordt ge\u00ebvalueerd. In principe had je dus net zo goed de volgende code kunnen schrijven:<\/p>\n<pre><code class=\"language-php\">echo (\"sum: \" . $a) + $b;<\/code><\/pre>\n<p><a href=\"https:\/\/wiki.php.net\/rfc\/concatenation_precedence\">Deze EFC<\/a> stelt voor om de voorrang van operatoren te wijzingen, waardoor &#8220;.&#8221; een lagere voorrang heeft dan de &#8220;+&#8221; en &#8220;-&#8221; operatoren, zodat toevoegingen en aftrekkingen altijd uitgevoerd worden v\u00f3\u00f3r de tekenreeksaaneenschakeling. Die regel code moet gelijk zijn aan het volgende:<\/p>\n<pre><code class=\"language-php\">echo \"sum: \" . ($a + $b);<\/code><\/pre>\n<p>Dit is een voorstel in twee stappen:<\/p>\n<ul>\n<li>Vanaf versie 7.4 stuurt PHP een afschaffingsnotificatie wanneer een unparanthesized expression wordt aangetroffen met &#8220;+&#8221;, &#8220;-&#8221; en &#8220;.&#8221;.<\/li>\n<li>De daadwerkelijke verandering in prioriteit volgt vanaf <a href=\"https:\/\/kinsta.com\/nl\/blog\/php-8\/\">PHP 8<\/a>.<\/li>\n<\/ul>\n<p>Beide voorstellen zijn met een ruime meerderheid aangenomen.<\/p>\n<h4>Afschaffing van de left-associative ternaire operator<\/h4>\n<p>In PHP is de ternaire operator, in tegenstelling tot veel andere talen, links-associatief. Volgens Nikita Popof kan dit verwarrend zijn voor programmeurs die tussen verschillende talen schakelen.<\/p>\n<p>Momenteel is in PHP de volgende code correct:<\/p>\n<pre><code class=\"language-php\">$b = $a == 1 ? 'one' : $a == 2 ? 'two' : $a == 3 ? 'three' : 'other';<\/code><\/pre>\n<p>Dit wordt ge\u00efnterpreteerd als:<\/p>\n<pre><code class=\"language-php\">$b = (($a == 1 ? 'one' : $a == 2) ? 'two' : $a == 3) ? 'three' : 'other';<\/code><\/pre>\n<p>En dit kan leiden tot foutmeldingen, omdat het net doet wat we willen dat het doet. Deze RFC stelt voor om het gebruik van linkse associativiteit voor ternaire operatoren af te schaffen en ontwikkelaars te dwingen om haakjes te gebruiken.<\/p>\n<p>Ook dit is een voorstel in twee stappen:<\/p>\n<ul>\n<li>Vanaf PHP 7.4 zullen ternaries zonder expliciet gebruik van haakjes een afschaffingsnotificatie ontvangen.<\/li>\n<li><a href=\"https:\/\/kinsta.com\/nl\/blog\/php-8\/\">Vanaf PHP 8.0<\/a> zal er een runtime-fout optreden.<\/li>\n<\/ul>\n<p>Dit voorstel heeft het gehaald met 35 stemmen voor en 10 stemmen tegen.<\/p>\n<h2 class=\"has-anchor-hash\">Wat betekent PHP 7.4 voor WordPress-gebruikers?<\/h2>\n<p>PHP is de meest gebruikte server-side programmeertaal op het web. <a href=\"https:\/\/w3techs.com\/technologies\/details\/pl-php\/all\/all\">Volgens W3Techs<\/a> gebruikt 78,9% van alle website PHP &#8211; gemeten op 2 december 2019 en op sites waarvan ze de programmeertaal van de server konden vaststellen.<\/p>\n<div><\/div><kinsta-auto-toc list-style=\"disc\" selector=\"h3\" count-number=\"5\" sub-toc=\"true\"><\/kinsta-auto-toc>\n<figure id=\"attachment_63301\" aria-describedby=\"caption-attachment-63301\" style=\"width: 1376px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-63301 size-full\" src=\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2019\/06\/php-versions-1.png\" alt=\"PHP gebruik (december 2019)\" width=\"1376\" height=\"654\"><figcaption id=\"caption-attachment-63301\" class=\"wp-caption-text\">PHP gebruik (december 2019)<\/figcaption><\/figure>\n<p>Helaas <a href=\"https:\/\/w3techs.com\/technologies\/details\/pl-php\/5\/all\">gebruikt nog steeds 44,0% van alle websites PHP 5<\/a> (waarvan de server-side programmeertaal bekend is). Als je <a href=\"https:\/\/w3techs.com\/technologies\/details\/pl-php\/7\/all\">het aantal gebruikers toevoegt dat nog steeds PHP 7.0 en 7.1 gebruikt<\/a>, blijkt dat een grote meerderheid van websites niet-ondersteunde versies van PHP gebruikt.<\/p>\n<figure id=\"attachment_63275\" aria-describedby=\"caption-attachment-63275\" style=\"width: 1726px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-63275 size-full\" src=\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2018\/06\/ondersteunde-php-versies-1.png\" alt=\"Ondersteunde PHP-versies\" width=\"1726\" height=\"332\"><figcaption id=\"caption-attachment-63275\" class=\"wp-caption-text\">Ondersteunde PHP-versies (afbeeldingsbron: <a href=\"https:\/\/www.php.net\/supported-versions.php\">Supported Versions<\/a>)<\/figcaption><\/figure>\n<p>Volgens de offici\u00eble <a href=\"https:\/\/wordpress.org\/about\/stats\/\">WordPress Stats-pagina<\/a> gebruikt maar liefst 64% van alle WordPress-websites niet-ondersteunde PHP-versies. Slechts iets meer dan 13% gebruikt <a href=\"https:\/\/kinsta.com\/nl\/changelog\/php-7-3-officiele-release-is-nu-beschikbaar-in-mykinsta\/\">PHP 7.3<\/a>. En de nieuwste versie, PHP 7.4, heeft nog niet eens een verschijning gemaakt. Je ziet dat een grote meerderheid van de gebruikers, meer dan 23%, nog steeds op PHP 5.6. loopt.<\/p>\n<figure id=\"attachment_63288\" aria-describedby=\"caption-attachment-63288\" style=\"width: 1390px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-63288 size-full\" src=\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2020\/08\/wordpress-php-versie-statistiken.png\" alt=\"WordPress PHP versie statistieken\" width=\"1390\" height=\"1156\"><figcaption id=\"caption-attachment-63288\" class=\"wp-caption-text\">WordPress PHP-versie statistieken<\/figcaption><\/figure>\n<p>We raden je ten zeerste aan om je host te vragen om een <a href=\"https:\/\/kinsta.com\/nl\/blog\/php-versies\/\">ondersteunde versie van PHP<\/a>, bij voorkeur volgens de <a href=\"https:\/\/wordpress.org\/about\/requirements\/\">offici\u00eble vereisten van WordPress<\/a>. Op moment van schrijven, mei 2019, vereist WordPress:<\/p>\n<ul>\n<li>PHP-versie 7.3 of hoger.<\/li>\n<li>MySQL versie 5.6 of hoger OF <a href=\"https:\/\/kinsta.com\/nl\/blog\/mariadb-vs-mysql\/\" target=\"_blank\" rel=\"noopener noreferrer\">MariaDB<\/a> versie 10.1 of hoger.<\/li>\n<li>HTTPS-ondersteuning<\/li>\n<\/ul>\n<h3 class=\"has-anchor-hash\">PHP 7 prestaties<\/h3>\n<p>Uit het oogpunt van performance zijn bovenstaande cijfers voornamelijk ontmoedigend, simpelweg omdat PHP 7 aanzienlijk sneller is. Dit zeggen de statistieken:<\/p>\n<ul>\n<li><a href=\"http:\/\/talks.php.net\/fluent15#\/wpbench\">Offici\u00eble PHP-benchmarks<\/a> laten zien dat PHP 7 het systeem in staat stelt om tweemaal zoveel verzoeken per seconde uit te voeren in vergelijking met de PHP 5.6, met bijna de helft van de latency.<\/li>\n<li>Christian Vigh publiceerde ook een <a href=\"https:\/\/www.phpclasses.org\/blog\/post\/493-php-performance-evolution.html\">PHP-prestatievergelijking<\/a> waarin hij ontdekte dat PHP 5.2 400% langzamer was dan PHP 7.<\/li>\n<li>Andrei Avram zag snellere uitvoeringstijden en <a href=\"https:\/\/blog.andreiavram.ro\/updates-php-performance-increase\/\">minder geheugengebruik in PHP 7.4<\/a> verzen die van PHP 7.3<\/li>\n<li>Phoronix heeft een aantal vroege <a href=\"https:\/\/phoronix.com\/scan.php?page=news_item&#038;px=PHP-7.4-Early-Benchmarks\">benchmarktests uitgevoerd met PHP 7.4 Alpha<\/a> en concludeerde dat deze versie iets sneller was dan PHP 7.3.<\/li>\n<\/ul>\n<p>We hebben onze eigen <a href=\"https:\/\/kinsta.com\/nl\/blog\/php-benchmarks\/\">PHP-prestatiebenchmarks<\/a> met PHP 7.3 uitgevoerd. We zagen dat WordPress 5.0 op PHP 7.3 bijna drie keer zoveel transacties (verzoeken) per seconde kon uitvoeren als PHP 5.6. <strong>We zullen binnenkort PHP 7.4 benchmarks vrijgeven!<\/strong><\/p>\n<figure style=\"width: 940px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2018\/12\/wordpress-5-0-php-benchmarks-1.png\" alt=\"WordPress 5.0 PHP benchmarks\" width=\"940\" height=\"788\"><figcaption class=\"wp-caption-text\">WordPress 5.0 PHP benchmarks<\/figcaption><\/figure>\n<ul>\n<li>WordPress 5.0 PHP 5.6 benchmark: 91,64 req\/sec<\/li>\n<li>WordPress 5.0 PHP 7.0 benchmarkresultaten: 206,71 req\/sec<\/li>\n<li>WordPress 5.0 PHP 7.1 benchmarkresultaten: 210,98 req\/sec<\/li>\n<li>WordPress 5.0\u00a0PHP 7.2 benchmarkresultaten: 229,18\u00a0req\/sec<\/li>\n<li>WordPress 5.0\u00a0PHP <strong>7.3 benchmarkresultaten: 253,20 req\/sec<\/strong>\u00a0 <strong>\ud83c\udfc6<\/strong><\/li>\n<\/ul>\n<p>In sommige gevallen valt het traag bijwerken van PHP te wijten aan het moeten testen van de compatibiliteit met externe plugins \u00a0 en thema&#8217;s, zodat deze goed blijven functioneren. \u00a0Echter, in veel gevallen is het \u00a0 simpelweg een kwestie van er nog niet aan toegekomen zijn.<\/p>\n<h3 class=\"has-anchor-hash\">Checken welke PHP-versie jij hebt<\/h3>\n<p>Weet je niet zeker welke PHP-versie jij gebruikt? Het makkelijkste is om hiervoor een tool als \u00a0 <a href=\"https:\/\/kinsta.com\/nl\/blog\/pingdom-speed-test\/\">Pingdom<\/a> of \u00a0 Google Chrome Devtools te gebruiken. De eerste HTTP-requestheader \u00a0 laat je normaal gesproken de PHP-versie zien.<\/p>\n<figure style=\"width: 1542px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2019\/06\/php-versie-controleren-pingdom.png\" alt=\"PHP-versie controleren in Pingdom\" width=\"1542\" height=\"864\"><figcaption class=\"wp-caption-text\">PHP-versie controleren in Pingdom<\/figcaption><\/figure>\n<p>Hierbij is het wel belangrijk dat de host geen wijzigingen heeft aangebracht in de waardes van de header <code>X-Powered-By<\/code>. Veel doen dit echter om veiligheidsredenen (inclusief Kinsta). Als dit het geval is, wordt je PHP-versie mogelijk niet weergegeven. In dat geval is er een nieuwe Site Health-tool die je kan gebruiken als je <a href=\"https:\/\/kinsta.com\/nl\/blog\/wordpress-5-2\/\">WordPress 5.2<\/a> of hoger gebruikt. Ga naar &#8220;Tools&#8221; \u2192 &#8220;Site Health&#8221; \u2192 &#8220;Info&#8221; en onder de sectie &#8220;Server&#8221; vindt je de PHP-versie van jouw server.<\/p>\n<figure style=\"width: 1954px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2019\/06\/php-versie-controleren-wordpress-site-health-tool.png\" alt=\"De PHP versie van jouw site controleren met WordPress Site Health tool\" width=\"1954\" height=\"720\"><figcaption class=\"wp-caption-text\">De PHP versie van jouw site controleren met WordPress Site Health tool<\/figcaption><\/figure>\n<p>Als alternatief kan je ook een gratis plugin installeren, zoals <a href=\"https:\/\/wordpress.org\/plugins\/version-info\/\">Version Info<\/a>, die je de basisinformatie van je server laat zien in de footer van het WordPress-beheerdersdashboard. Een paar andere manieren om achter de PHP-versie van jouw server te komen, zijn onder andere het <a href=\"https:\/\/kinsta.com\/nl\/blog\/php-versies\/\">uploaden van een bestand via FTP<\/a> of simpelweg contact opnemen met je host en het vragen.<\/p>\n<h3 class=\"has-anchor-hash\">Updaten naar PHP 7.4<\/h3>\n<p><strong>De definitieve versie van PHP 7.4 is nu beschikbaar binnen Kinsta.<\/strong> Als alternatief kan je je <a href=\"https:\/\/kinsta.com\/nl\/blog\/lokale-wordpress-installatie\/\">WordPress site ook lokaal testen<\/a> of je scripts controleren in een omgeving als <a href=\"https:\/\/docs.docker.com\/get-started\/\">Docker<\/a>, waarmee je verschillende versies van PHP kan testen via de command line.<\/p>\n<p>De makkelijkste manier om te beginnen met testen is door een <a href=\"https:\/\/kinsta.com\/nl\/docs\/wordpress-hosting\/testomgeving\/\">testomgeving aan te maken<\/a> aangezien deze voor het grootste deel overeenkomt met je live productiesite. In het MyKinsta-dashboard klik je op je site en verander je je omgeving naar de testomgeving.<\/p>\n<figure id=\"attachment_62780\" aria-describedby=\"caption-attachment-62780\" style=\"width: 1557px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-62780 size-full\" src=\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2019\/11\/aanmaken-wordpress-testomgeving .png\" alt=\"Een WordPress-testomgeving aanmaken\" width=\"1557\" height=\"750\"><figcaption id=\"caption-attachment-62780\" class=\"wp-caption-text\">Een WordPress-testomgeving aanmaken<\/figcaption><\/figure>\n<p>Vervolgens kan je in het Tools-menu je PHP-engine wijzigen naar PHP 7.4. Nu kan je beginnen met het testen van de compatibiliteit met je code, externe plugins en thema\u2019s.<\/p>\n<p>Net als bij eerdere versies van PHP, ondersteunt onze <a href=\"https:\/\/kinsta.com\/nl\/changelog\/automatische-mysql-database-optimalisaties\/#selfhealing-php\">zelfherstellende PHP functie<\/a> PHP 7.4 volledig. Als PHP om welke reden dan ook uitvalt, zullen we het automatisch opnieuw opstarten. Als het opnieuw opstarten het probleem niet oplost, zal ons bewakingssysteem ons <a href=\"https:\/\/kinsta.com\/nl\/blog\/systeembeheerder\/\">sysadmin-team<\/a> waarschuwen om de oorzaak van het probleem te onderzoeken.<\/p>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-important\">\n            <h3>Important<\/h3>\n        <p>Ook al is dit een stabiele release, we <strong>raden iedereen toch sterk aan om PHP 7.4 te testen<\/strong> voordat je het op je live site gebruikt<strong>.<\/strong><\/p>\n<\/aside>\n\n<figure id=\"attachment_63243\" aria-describedby=\"caption-attachment-63243\" style=\"width: 1565px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-63243 size-full\" src=\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2020\/08\/naar-php-7-4-veranden.png\" alt=\"Naar PHP 7.4 veranderen\" width=\"1565\" height=\"990\"><figcaption id=\"caption-attachment-63243\" class=\"wp-caption-text\">Naar PHP 7.4 veranderen<\/figcaption><\/figure>\n<p>Zie alle gegevens over de <a href=\"https:\/\/kinsta.com\/nl\/changelog\/php-7-4\/\">PHP 7.4 release bij Kinsta<\/a>.<\/p>\n<h3>Installeren en uitvoeren van PHP 7.4 op Docker<\/h3>\n<p>Wil je op Docker testen? Gelukkig hoef je PHP 7.4 niet handmatig te compileren en te configureren. Als Docker al op je systeem is ge\u00efnstalleerd, hoef je alleen de niet-offici\u00eble <a href=\"https:\/\/github.com\/devilbox\/docker-php-fpm-7.4\">PHP-FPM 7.4 Docker Image<\/a> te installeren om je tests vanuit de opdrachtregel uit te voeren.<\/p>\n<figure style=\"width: 570px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2019\/05\/nginx-docker-image-installeren.png\" alt=\"Nginx Docker Image installeren\" width=\"570\" height=\"365\"><figcaption class=\"wp-caption-text\">Nginx Docker Image installeren<\/figcaption><\/figure>\n<p>Als je liever de PHP 7.4-code vanuit je browser gebruikt, dan moet je ook een <a href=\"https:\/\/kinsta.com\/nl\/blog\/nginx-vs-apache\/\">Nginx of Apache<\/a> image installeren. Maar geen zorgen! Volg gewoon de <a href=\"https:\/\/github.com\/devilbox\/docker-php-fpm-7.4#example\">aanwijzingen van de ontwikkelaar<\/a>. Kopieer en plak de opdrachten van de Docker Image-pagina naar de commandline-tool van jouw keuze en je kan beginnen.<\/p>\n\n<h2>Samenvatting<\/h2>\n<p>In dit artikel hebben we een groot aantal wijzigingen en toevoegingen behandeld die we kunnen verwachten met de release van PHP 7.4. Als je op zoekt bent naar de volledige lijst met features, samen met de offici\u00eble RFC-documentatie, bekijk dan de volgende bronnen:<\/p>\n<ul>\n<li><a href=\"https:\/\/wiki.php.net\/rfc#php_74\">PHP 7.4 Requests for Comments<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/php\/php-src\/blob\/PHP-7.4\/UPGRADING\">PHP 7.4 Upgrade Notes<\/a><\/li>\n<li><a href=\"https:\/\/wiki.php.net\/todo\/php74\">PHP 7.4 Preparation Tasks<\/a><\/li>\n<\/ul>\n<p>We houden je op de hoogte met de laatste informatie over PHP 7.4. Als je klant bent van Kinsta, kan je meteen beginnen met het verhuizen van je WordPress sites naar de nieuwste versie.<\/p>\n<p>Ben je klaar om de features van deze nieuwe versie van PHP te testen? Op welke feature kan jij niet wachten? Laat het ons weten in de reacties hieronder.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>PHP 7.4 is de meest recente (minor) release en is voor algemene beschikbaarheid uitgegeven op 28 november 2019. Hoog tijd om eens goed te kijken naar &#8230;<\/p>\n","protected":false},"author":36,"featured_media":23579,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[32,29],"topic":[867],"class_list":["post-23566","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>Wat is nieuw in PHP 7.4? (Functies, afschrijvingen, snelheid) - Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"PHP 7.4 gaat gepaard met nieuwe features en een performanceboost. Check dit gedetailleerde overzicht met al het nieuws over PHP 7.4!\" \/>\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\/nl\/blog\/php-7-4\/\" \/>\n<meta property=\"og:locale\" content=\"nl_NL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Wat is nieuw in PHP 7.4? (Functies, afschrijvingen, snelheid)\" \/>\n<meta property=\"og:description\" content=\"PHP 7.4 gaat gepaard met nieuwe features en een performanceboost. Check dit gedetailleerde overzicht met al het nieuws over PHP 7.4!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/nl\/blog\/php-7-4\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Kinsta-Nederland-476213452787823\/\" \/>\n<meta property=\"article:published_time\" content=\"2019-06-20T21:57:09+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-05-22T12:20:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2024\/11\/NL-Homepage-featured-image.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\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.4 gaat gepaard met nieuwe features en een performanceboost. Check dit gedetailleerde overzicht met al het nieuws over PHP 7.4!\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/wp-content\/uploads\/2019\/06\/php-7.4.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@carlodaniele\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_NL\" \/>\n<meta name=\"twitter:label1\" content=\"Geschreven door\" \/>\n\t<meta name=\"twitter:data1\" content=\"Carlo Daniele\" \/>\n\t<meta name=\"twitter:label2\" content=\"Geschatte leestijd\" \/>\n\t<meta name=\"twitter:data2\" content=\"19 minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/php-7-4\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/php-7-4\/\"},\"author\":{\"name\":\"Carlo Daniele\",\"@id\":\"https:\/\/kinsta.com\/nl\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63\"},\"headline\":\"Wat is nieuw in PHP 7.4? (Functies, afschrijvingen, snelheid)\",\"datePublished\":\"2019-06-20T21:57:09+00:00\",\"dateModified\":\"2023-05-22T12:20:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/php-7-4\/\"},\"wordCount\":3282,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/nl\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/php-7-4\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2019\/06\/wat-is-nieuw-php-7-4.jpg\",\"keywords\":[\"php\",\"webdev\"],\"articleSection\":[\"WordPress ontwikkeling\"],\"inLanguage\":\"nl-NL\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/nl\/blog\/php-7-4\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/php-7-4\/\",\"url\":\"https:\/\/kinsta.com\/nl\/blog\/php-7-4\/\",\"name\":\"Wat is nieuw in PHP 7.4? (Functies, afschrijvingen, snelheid) - Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/nl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/php-7-4\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/php-7-4\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2019\/06\/wat-is-nieuw-php-7-4.jpg\",\"datePublished\":\"2019-06-20T21:57:09+00:00\",\"dateModified\":\"2023-05-22T12:20:25+00:00\",\"description\":\"PHP 7.4 gaat gepaard met nieuwe features en een performanceboost. Check dit gedetailleerde overzicht met al het nieuws over PHP 7.4!\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/php-7-4\/#breadcrumb\"},\"inLanguage\":\"nl-NL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/nl\/blog\/php-7-4\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/php-7-4\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2019\/06\/wat-is-nieuw-php-7-4.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2019\/06\/wat-is-nieuw-php-7-4.jpg\",\"width\":1460,\"height\":730,\"caption\":\"Wat is nieuw in PHP 7.4? (binnenkort beschikbaar)\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/php-7-4\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/nl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PHP updates\",\"item\":\"https:\/\/kinsta.com\/nl\/onderwerpen\/php-updates\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Wat is nieuw in PHP 7.4? (Functies, afschrijvingen, snelheid)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/nl\/#website\",\"url\":\"https:\/\/kinsta.com\/nl\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Snelle, veilige, premium hostingoplossingen\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/nl\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/nl\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"nl-NL\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/nl\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/nl\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\/\/kinsta.com\/nl\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/nl\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Kinsta-Nederland-476213452787823\/\",\"https:\/\/x.com\/Kinsta_NL\",\"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\/nl\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63\",\"name\":\"Carlo Daniele\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\/\/kinsta.com\/nl\/#\/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\/nl\/blog\/author\/carlodaniele\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Wat is nieuw in PHP 7.4? (Functies, afschrijvingen, snelheid) - Kinsta\u00ae","description":"PHP 7.4 gaat gepaard met nieuwe features en een performanceboost. Check dit gedetailleerde overzicht met al het nieuws over PHP 7.4!","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\/nl\/blog\/php-7-4\/","og_locale":"nl_NL","og_type":"article","og_title":"Wat is nieuw in PHP 7.4? (Functies, afschrijvingen, snelheid)","og_description":"PHP 7.4 gaat gepaard met nieuwe features en een performanceboost. Check dit gedetailleerde overzicht met al het nieuws over PHP 7.4!","og_url":"https:\/\/kinsta.com\/nl\/blog\/php-7-4\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/Kinsta-Nederland-476213452787823\/","article_published_time":"2019-06-20T21:57:09+00:00","article_modified_time":"2023-05-22T12:20:25+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2024\/11\/NL-Homepage-featured-image.png","type":"image\/png"}],"author":"Carlo Daniele","twitter_card":"summary_large_image","twitter_description":"PHP 7.4 gaat gepaard met nieuwe features en een performanceboost. Check dit gedetailleerde overzicht met al het nieuws over PHP 7.4!","twitter_image":"https:\/\/kinsta.com\/wp-content\/uploads\/2019\/06\/php-7.4.jpg","twitter_creator":"@carlodaniele","twitter_site":"@Kinsta_NL","twitter_misc":{"Geschreven door":"Carlo Daniele","Geschatte leestijd":"19 minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/nl\/blog\/php-7-4\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/nl\/blog\/php-7-4\/"},"author":{"name":"Carlo Daniele","@id":"https:\/\/kinsta.com\/nl\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63"},"headline":"Wat is nieuw in PHP 7.4? (Functies, afschrijvingen, snelheid)","datePublished":"2019-06-20T21:57:09+00:00","dateModified":"2023-05-22T12:20:25+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/nl\/blog\/php-7-4\/"},"wordCount":3282,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/nl\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/nl\/blog\/php-7-4\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2019\/06\/wat-is-nieuw-php-7-4.jpg","keywords":["php","webdev"],"articleSection":["WordPress ontwikkeling"],"inLanguage":"nl-NL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/nl\/blog\/php-7-4\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/nl\/blog\/php-7-4\/","url":"https:\/\/kinsta.com\/nl\/blog\/php-7-4\/","name":"Wat is nieuw in PHP 7.4? (Functies, afschrijvingen, snelheid) - Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinsta.com\/nl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/nl\/blog\/php-7-4\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/nl\/blog\/php-7-4\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2019\/06\/wat-is-nieuw-php-7-4.jpg","datePublished":"2019-06-20T21:57:09+00:00","dateModified":"2023-05-22T12:20:25+00:00","description":"PHP 7.4 gaat gepaard met nieuwe features en een performanceboost. Check dit gedetailleerde overzicht met al het nieuws over PHP 7.4!","breadcrumb":{"@id":"https:\/\/kinsta.com\/nl\/blog\/php-7-4\/#breadcrumb"},"inLanguage":"nl-NL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/nl\/blog\/php-7-4\/"]}]},{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/kinsta.com\/nl\/blog\/php-7-4\/#primaryimage","url":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2019\/06\/wat-is-nieuw-php-7-4.jpg","contentUrl":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2019\/06\/wat-is-nieuw-php-7-4.jpg","width":1460,"height":730,"caption":"Wat is nieuw in PHP 7.4? (binnenkort beschikbaar)"},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/nl\/blog\/php-7-4\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/nl\/"},{"@type":"ListItem","position":2,"name":"PHP updates","item":"https:\/\/kinsta.com\/nl\/onderwerpen\/php-updates\/"},{"@type":"ListItem","position":3,"name":"Wat is nieuw in PHP 7.4? (Functies, afschrijvingen, snelheid)"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/nl\/#website","url":"https:\/\/kinsta.com\/nl\/","name":"Kinsta\u00ae","description":"Snelle, veilige, premium hostingoplossingen","publisher":{"@id":"https:\/\/kinsta.com\/nl\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/nl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"nl-NL"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/nl\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/nl\/","logo":{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/kinsta.com\/nl\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/nl\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Kinsta-Nederland-476213452787823\/","https:\/\/x.com\/Kinsta_NL","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\/nl\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63","name":"Carlo Daniele","image":{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/kinsta.com\/nl\/#\/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\/nl\/blog\/author\/carlodaniele\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/posts\/23566","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/users\/36"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/comments?post=23566"}],"version-history":[{"count":16,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/posts\/23566\/revisions"}],"predecessor-version":[{"id":49345,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/posts\/23566\/revisions\/49345"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/23566\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/23566\/translations\/it"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/23566\/translations\/nl"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/23566\/translations\/fr"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/23566\/translations\/es"},{"embeddable":true,"hreflang":"da","title":"Danish","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/23566\/translations\/dk"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/23566\/translations\/jp"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/23566\/translations\/de"},{"embeddable":true,"hreflang":"sv","title":"Swedish","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/23566\/translations\/se"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/23566\/translations\/pt"},{"href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/23566\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/media\/23579"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/media?parent=23566"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/tags?post=23566"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/topic?post=23566"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}