{"id":32028,"date":"2019-07-15T06:14:18","date_gmt":"2019-07-15T05:14:18","guid":{"rendered":"https:\/\/kinsta.com\/?p=46699"},"modified":"2023-08-28T06:56:23","modified_gmt":"2023-08-28T05:56:23","slug":"php-7-4","status":"publish","type":"post","link":"https:\/\/kinsta.com\/dk\/blog\/php-7-4\/","title":{"rendered":"Hvad er nyt i PHP 7.4 (funktioner, afskrivninger, hastighed)"},"content":{"rendered":"<p>PHP 7.4, den n\u00e6ste PHP 7 mindre udgivelse, er blevet frigivet til General Disponibilitet den 28. november 2019. S\u00e5 det er tid for os at dykke ned i nogle af de mest sp\u00e6ndende tilf\u00f8jelser og nye funktioner, der vil have gjort PHP hurtigere og mere p\u00e5lidelige.<\/p>\n<p><strong>Opdatering:<\/strong> <a href=\"https:\/\/kinsta.com\/dk\/changelog\/php-8-1\/\">PHP 8.1 (officiel udgivelse)<\/a> er nu tilg\u00e6ngelig for alle Kinsta-klienter. PHP 7.4 underst\u00f8ttes ikke l\u00e6ngere hos Kinsta. Bem\u00e6rk venligst, at vi underst\u00f8tter PHP-versioner 7.4, 8.0, 8.1, 8.2, 8.3, 8.4 og 8.5.<\/p>\n<p>Faktisk, selvom PHP 7.4 signifikant \u00f8ger ydeevnen og forbedrer kodel\u00e6sbarheden, vil <a href=\"https:\/\/kinsta.com\/dk\/blog\/php-8\/\">PHP 8<\/a> v\u00e6re den rigtige milep\u00e6l for PHP-ydeevne, da forslaget til <a href=\"https:\/\/wiki.php.net\/rfc\/jit\">JIT-integration<\/a> allerede er godkendt.<\/p>\n<p>Anyway, i dag g\u00e5r vi igennem nogle af de mest interessante funktioner og \u00e6ndringer, vi forventer med PHP 7.4. Bare for lige at oplyse, var dette de vigtige datoer for 7.4-versionen:<\/p>\n<ul>\n<li>6. juni 2019: PHP 7.4 Alpha 1<\/li>\n<li>18. juli 2019: PHP 7.4 Beta 1 &#8211; Funktion fryser<\/li>\n<li>28. november 2019: PHP 7.4 GA Udgivelse<\/li>\n<\/ul>\n<p>Du kan tjekke den fulde liste over funktioner og tilf\u00f8jelser p\u00e5 <a href=\"https:\/\/wiki.php.net\/rfc#php_74\">den officielle RFC-side<\/a>.<\/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>Hvad er nyt i PHP med PHP 7.4?<\/h2>\n<p>I dette indl\u00e6g d\u00e6kker vi flere \u00e6ndringer og funktioner, som skal tilf\u00f8jes til sproget med den endelige udgivelse af PHP 7.4:<\/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\">Glem array_merge: PHP 7.4 Brings Spread Operator i Array Expression<\/h3>\n<p>Tilg\u00e6ngelig siden PHP 5.6, er <a href=\"https:\/\/wiki.php.net\/rfc\/argument_unpacking\">argumentet udpakning<\/a> en syntaks for udpakning af arrayer og <a href=\"https:\/\/www.php.net\/manual\/en\/class.traversable.php\">Traversables<\/a> i argumentlister. For at udpakke et array eller en Traversable, skal det udfyldes af &#8230; (3 prikker), som vist i f\u00f8lgende eksempel:<\/p>\n<pre><code class=\"language-php\">function test(...$args) { var_dump($args); }\ntest(1, 2, 3);<\/code><\/pre>\n<p>Nu foresl\u00e5r <a href=\"https:\/\/wiki.php.net\/rfc\/spread_operator_for_array\">denne PHP 7.4 RFC<\/a> at udvide denne funktion til array definitioner:<\/p>\n<pre><code class=\"language-php\">$arr = [...$args];<\/code><\/pre>\n<p>Den f\u00f8rste erkl\u00e6rede fordel ved <strong>Spread Operator i array-udtryk<\/strong> handler om pr\u00e6station. Faktisk <a href=\"https:\/\/wiki.php.net\/rfc\/spread_operator_for_array\">siger RFC doc<\/a>:<\/p>\n<blockquote><p>Spread operat\u00f8r b\u00f8r have bedre ydeevne end <code>array_merge<\/code>. Det er ikke kun fordi sprednings operat\u00f8ren er en sprogstruktur, mens <code>array_merge<\/code> er en funktion, men ogs\u00e5 fordi kompilering tidsoptimering kan v\u00e6re effektiv for konstante arrayer.<\/p><\/blockquote>\n<p>En v\u00e6sentlig fordel ved Spread operat\u00f8r er, at den underst\u00f8tter alle traversable objekter, mens <code>array_merge<\/code>-funktionen kun underst\u00f8tter arrays.<\/p>\n<p>Her er et eksempel p\u00e5 argument udpakning i array udtryk:<\/p>\n<pre><code class=\"language-php\">$parts = ['apple', 'pear'];\n$fruits = ['banana', 'orange', ...$parts, 'watermelon'];\nvar_dump($fruits);<\/code><\/pre>\n<p>Hvis du k\u00f8rer denne kode med i PHP 7.3 eller tidligere, kaster PHP en Parse-fejl:<\/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>I stedet ville PHP 7.4 returnere en matrix:<\/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>RFC angiver, at vi kan udvide det samme array flere gange. Desuden kan vi bruge Spread Operator-syntaxen overalt i arrayet, da normale elementer kan tilf\u00f8jes f\u00f8r eller efter spredningsoperat\u00f8ren. S\u00e5 f\u00f8lgende kode vil fungere som vi m\u00e5tte forvente:<\/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>Det er ogs\u00e5 muligt at udpakke arrayer, der returneres af en funktion direkte til et nyt 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>PHP 7.4 udsender f\u00f8lgende 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>Vi kan ogs\u00e5 bruge <a href=\"https:\/\/www.php.net\/manual\/en\/language.generators.syntax.php\">generatorsyntaxen<\/a>:<\/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>Men vi har ikke lov til at udpakke arrays, der er vedtaget som reference. Overvej f\u00f8lgende eksempel:<\/p>\n<pre><code class=\"language-php\">$arr1 = ['red', 'green', 'blue'];\n$arr2 = [...&$arr1];<\/code><\/pre>\n<p>Hvis vi ville fors\u00f8ge at udpakke et array ved reference, kaster PHP f\u00f8lgende Parse-fejl:<\/p>\n<pre><code class=\"language-php\">Parse error: syntax error, unexpected '&' in \/app\/spread-operator.php on line 3<\/code><\/pre>\n<p>I hvert fald, hvis elementerne i den f\u00f8rste matrix lagres ved reference, gemmes de som reference ogs\u00e5 i den anden matrix. Her er et eksempel:<\/p>\n<pre><code class=\"language-php\">$arr0 = 'red';\n$arr1 = [&$arr0, 'green', 'blue'];\n$arr2 = ['white', ...$arr1, 'black'];<\/code><\/pre>\n<p>Og her er hvad vi f\u00e5r med 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>Spread operat\u00f8r forslaget best\u00e5et med 43 til 1 stemmer.<\/p>\n<h3 id=\"arrow-functions\">Pilfunktioner 2.0 (korte lukninger)<\/h3>\n<p>I PHP anses <a href=\"https:\/\/www.php.net\/manual\/en\/functions.anonymous.php\">anonyme funktioner<\/a> for at v\u00e6re ret verbose og vanskelige at implementere og vedligeholde. <a href=\"https:\/\/wiki.php.net\/rfc\/arrow_functions_v2\">Denne RFC<\/a> foresl\u00e5r introduktion af den kortere og klarere syntaks af <strong>pilfunktionerne<\/strong> (eller korte lukninger), som skal g\u00f8re det muligt for os at rense vores PHP-kode betydeligt.<\/p>\n<p>Overvej f\u00f8lgende eksempel:<\/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 tillader at bruge en mere kortfattet syntaks, og ovenst\u00e5ende funktion kan omskrives som f\u00f8lger:<\/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>I \u00f8jeblikket kan <a href=\"https:\/\/www.php.net\/manual\/en\/functions.anonymous.php\">anonyme funktioner<\/a> (lukninger) arve variabler defineret i for\u00e6lderens omfang takket v\u00e6re sprogkonstruktionen, som vist nedenfor:<\/p>\n<pre><code class=\"language-php\">$factor = 10;\n$calc = function($num) use($factor){\n\treturn $num * $factor;\n};<\/code><\/pre>\n<p>Men med PHP 7.4 er variabler defineret i parentes omfanget <strong>implicit fanget af v\u00e6rdi<\/strong> (implicit bindingsv\u00e6rdi bindende). S\u00e5 vi kan skrive hele funktionen set ovenfor p\u00e5 en enkelt linje:<\/p>\n<pre><code class=\"language-php\">$factor = 10;\n$calc = fn($num) =&gt; $num * $factor;<\/code><\/pre>\n<p>Den variable, der er defineret i parentesomr\u00e5det, kan bruges i pilfunktionen n\u00f8jagtigt som om vi brugte <code>use ($ var)<\/code>, og det er ikke muligt at \u00e6ndre en variabel fra parentesomr\u00e5det.<\/p>\n<p>Den nye syntaks er en stor forbedring af sproget, da det giver os mulighed for at bygge mere l\u00e6sbar og vedligeholdelig kode. Vi kan ogs\u00e5 bruge <a href=\"https:\/\/kinsta.com\/dk\/blog\/php-7-2\/\">parameter og returtyper<\/a>, standardv\u00e6rdier, argumentlister med variabel l\u00e6ngde (<a href=\"https:\/\/en.wikipedia.org\/wiki\/Variadic_function\">variadiske funktioner<\/a>), vi kan videregive og returnere ved reference osv. Endelig kan korte lukninger ogs\u00e5 bruges i klassemetoder, og de kan g\u00f8re brug af <code>$ this<\/code> variabel ligesom regul\u00e6re lukninger.<\/p>\n<p>Denne RFC er godkendt med 51 til 8 stemmer, s\u00e5 vi kan forvente, at det er en del af PHP 7.4 tilf\u00f8jelser.<\/p>\n<h3 id=\"nulled-coalesce-assign-operator\">Null Coalescing Assignment Operator<\/h3>\n<p>Tilf\u00f8jet med PHP 7, kommer <a href=\"https:\/\/www.php.net\/manual\/en\/migration70.new-features.php#migration70.new-features.null-coalesce-op\">coalesce operat\u00f8ren<\/a> (<code>??<\/code>) til nytte, n\u00e5r vi skal bruge en tern\u00e6r operat\u00f8r i forbindelse med <code>isset ()<\/code>. Den returnerer den f\u00f8rste operand, hvis den eksisterer og ikke er <code>NULL<\/code>. Ellers vender den tilbage til den anden operand. Her er et eksempel:<\/p>\n<pre><code class=\"language-php\">$username = $_GET['user'] ?? 'nobody';<\/code><\/pre>\n<p>Hvad denne kode g\u00f8r er ret retf\u00e6rdig: <strong>den henter anmodningsparameteren og angiver en standardv\u00e6rdi, hvis den ikke findes<\/strong>. Betydningen af \u200b\u200bdenne linje er klar, men hvad nu hvis vi havde langt l\u00e6ngere variable navne som i dette eksempel fra RFC?<\/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>I det lange l\u00f8b kan denne kode v\u00e6re lidt sv\u00e6rt at vedligeholde. S\u00e5, med det form\u00e5l at hj\u00e6lpe udviklere med at skrive mere intuitiv kode, foresl\u00e5r <a href=\"https:\/\/wiki.php.net\/rfc\/null_coalesce_equal_operator\">denne RFC<\/a> indf\u00f8relsen af \u200b\u200b<strong>null coalescerings operat\u00f8ren<\/strong> (<code>?? =<\/code>). S\u00e5 i stedet for at skrive den forrige kode kunne vi skrive f\u00f8lgende:<\/p>\n<pre><code class=\"language-php\">$this-&gt;request-&gt;data['comments']['user_id'] ??= 'value';<\/code><\/pre>\n<p>Hvis v\u00e6rdien af \u200b\u200bden venstre parameter er <code>null<\/code>, bruges v\u00e6rdien af \u200b\u200bden h\u00f8jre parameter.<\/p>\n<p>Bem\u00e6rk, at mens coalesceoperat\u00f8ren er en sammenligningsoperat\u00f8r, er <code>??=<\/code> en assignment operator.<\/p>\n<p>Dette forslag er godkendt med 37 til 4 stemmer.<\/p>\n<h3 id=\"typed-properties\">Typede Egenskaber 2.0<\/h3>\n<p>Argument type erkl\u00e6ringer eller type tip, tillade at angive typen af \u200b\u200ben variabel, der forventes at blive videregivet til en funktion eller en klassemetode. Type tip er en funktion tilg\u00e6ngelig siden PHP 5, og siden <a href=\"https:\/\/kinsta.com\/dk\/blog\/php-7-2\/\">PHP 7.2<\/a> kan vi bruge dem med <code>object<\/code> datatypen. Nu PHP 7.4 bringer type hinting et skridt fremad ved at tilf\u00f8je st\u00f8tte til <a href=\"https:\/\/wiki.php.net\/rfc\/typed_properties_v2\">f\u00f8rsteklasses ejendomstype erkl\u00e6ringer<\/a>. Her er et meget grundl\u00e6ggende eksempel:<\/p>\n<pre><code class=\"language-php\">class User {\n\tpublic int $id;\n\tpublic string $name;\n}<\/code><\/pre>\n<p>Alle typer underst\u00f8ttes, med undtagelse af <code>void<\/code> og <code>callable<\/code>:<\/p>\n<pre><code class=\"language-php\">public int $scalarType;\nprotected ClassName $classType;\nprivate ?ClassName $nullableClassType;<\/code><\/pre>\n<p>RFC forklarer \u00e5rsagen til, at <code>void<\/code> og <code>callable<\/code> ikke underst\u00f8ttes:<\/p>\n<blockquote><p>Ugyldigtype underst\u00f8ttes ikke, fordi det ikke er nyttigt og har uklar semantik.<\/p><\/blockquote>\n<blockquote><p>Den kaldbare type underst\u00f8ttes ikke, fordi dens adf\u00e6rd er kontekstafh\u00e6ngig.<\/p><\/blockquote>\n<p>S\u00e5 vi kan sikkert bruge <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>, enhver klasse eller interface navn og <a href=\"https:\/\/kinsta.com\/blog\/php-7-1-0\/#nullable-types\">nulstillede typer<\/a> (<code>?type<\/code>).<\/p>\n<p>Typer kan bruges p\u00e5 statiske egenskaber:<\/p>\n<pre><code class=\"language-php\">public static iterable $staticProp;<\/code><\/pre>\n<p>De er ogs\u00e5 tilladt med <code>var<\/code> notationen:<\/p>\n<pre><code class=\"language-php\">var bool $flag;<\/code><\/pre>\n<p>Det er muligt at angive standard egenskabsv\u00e6rdier, som selvf\u00f8lgelig skal matche den deklarerede egenskabstype, men kun nulstillingsegenskaber kan have en standard <code>null<\/code> v\u00e6rdi:<\/p>\n<pre><code class=\"language-php\">public string $str = \"foo\";\npublic ?string $nullableStr = null;<\/code><\/pre>\n<p>Den samme type g\u00e6lder for alle ejendomme i en enkelt erkl\u00e6ring:<\/p>\n<pre><code class=\"language-php\">public float $x, $y;<\/code><\/pre>\n<p>Hvad sker der, hvis vi g\u00f8r en fejl p\u00e5 ejendomstype? Overvej f\u00f8lgende kode:<\/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>I koden ovenfor erkl\u00e6rede vi en streng-egenskabstype, men vi angiver en matrix som egenskabsv\u00e6rdi. I et s\u00e5dant scenario f\u00e5r vi f\u00f8lgende fatale fejl:<\/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>Denne RFC er blevet godkendt med 70 til 1 stemmer.<\/p>\n<h3 id=\"weakreferences\">Weak References<\/h3>\n<p>Med <a href=\"https:\/\/wiki.php.net\/rfc\/weakrefs\">denne RFC<\/a> introducerer PHP 7.4 klassen <a href=\"https:\/\/www.php.net\/manual\/en\/class.weakreference.php\">WeakReference<\/a>, som g\u00f8r det muligt for programm\u00f8rer at beholde en reference til et objekt, der ikke forhindrer selve objektet i at blive \u00f8delagt.<\/p>\n<p>I \u00f8jeblikket underst\u00f8tter PHP svage referencer ved at bruge en udvidelse som pecl-weakref. ALts\u00e5, den nye API er forskellig fra den dokumenterede <code>WeakRef<\/code> klasse.<\/p>\n<p>Her er et <a href=\"https:\/\/www.slideshare.net\/nikita_ppv\/typed-properties-and-more-whats-coming-in-php-74\">eksempel fra forfatteren<\/a> af \u200b\u200bdette forslag, 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>Det f\u00f8rste <code>var_dump<\/code>-udskriftsobjekt <code class=\"language-php\"><span class=\"token keyword type-declaration\">object<\/span><span class=\"token punctuation\">(<\/span>stdClass<span class=\"token punctuation\">)<\/span><span class=\"token comment\">#1 (0) {}<\/span><\/code>, mens den anden <code>var_dump<\/code> udskriver <code>NULL<\/code>, da det refererede objekt er blevet \u00f8delagt.<\/p>\n<blockquote class=\"twitter-tweet\" data-width=\"500\" data-dnt=\"true\">\n<p lang=\"en\" dir=\"ltr\">Slides for my PHP 7.4 talk at <a href=\"https:\/\/twitter.com\/hashtag\/PHPRussia2019?src=hash&amp;ref_src=twsrc%5Etfw\">#PHPRussia2019<\/a>. Was a great conference!<a href=\"https:\/\/t.co\/zLr9Bj2aKl\">https:\/\/t.co\/zLr9Bj2aKl<\/a><\/p>\n<p>&mdash; Nikita Popov (@nikita_ppv) <a href=\"https:\/\/twitter.com\/nikita_ppv\/status\/1130188147940352000?ref_src=twsrc%5Etfw\">May 19, 2019<\/a><\/p><\/blockquote>\n<p><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/p>\n<p>Denne RFC bestod med 28 til 5 stemmer.<\/p>\n<h3 id=\"covariant-return-types-contravariant-parameters\">Covariant returns og contravariant parametre<\/h3>\n<p><a href=\"https:\/\/en.wikipedia.org\/wiki\/Covariance_and_contravariance_(computer_science)\">Variance<\/a> er en egenskab af klassehierarkier, der beskriver hvordan typer af en konstrukt\u00f8r p\u00e5virker <a href=\"https:\/\/en.wikipedia.org\/wiki\/Subtyping\">undertyper<\/a>. Generelt kan en type konstrukt\u00f8r v\u00e6re:<\/p>\n<ul>\n<li><strong>Invariant<\/strong>: Hvis typen af super-typen begr\u00e6nser typen af subtypen.<\/li>\n<li><strong>Covariant<\/strong>: Hvis bestillingen af typer er bevaret (typer bestilles fra mere specifikke til mere generiske).<\/li>\n<li><strong>Contravariant<\/strong>: hvis det vendes ordren (typer bestilles fra mere generisk til mere specifik).<\/li>\n<\/ul>\n<p>I \u00f8jeblikket har PHP for det meste invariant parameter og returtyper med f\u00e5 undtagelser. Denne RFC foresl\u00e5r at tillade kovarians og modsvar p\u00e5 parametertyper og returtyper, der ogs\u00e5 giver flere eksempler p\u00e5 kode.<\/p>\n<p>Her er et eksempel p\u00e5 <strong>kovariant returtype<\/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>Og her er et eksempel p\u00e5 <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>Se <a href=\"https:\/\/wiki.php.net\/rfc\/covariant-returns-and-contravariant-parameters\">RFC<\/a> for at se n\u00e6rmere p\u00e5 kovarians og modsvar i PHP 7.4.<\/p>\n<p>Denne RFC bestod med 39 til 1 stemmer.<\/p>\n<h3 id=\"preloading\">Preloading<\/h3>\n<p><a href=\"https:\/\/wiki.php.net\/rfc\/preload\">Dette forslag<\/a> fra Dmitry Stogov er en af vores foretrukne, fordi det burde bringe et betydeligt l\u00f8ft i pr\u00e6stationen. <strong>Preloading<\/strong> er processen med at indl\u00e6se biblioteker og rammer i <a href=\"https:\/\/www.php.net\/manual\/en\/book.opcache.php\">OPCache<\/a> ved modulinitialisering (l\u00e6s mere om <a href=\"http:\/\/www.phpinternalsbook.com\/php7\/extensions_design\/php_lifecycle.html\">PHP livscyklus<\/a>).<\/p>\n<figure style=\"width: 335px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/dk\/wp-content\/uploads\/sites\/12\/2019\/05\/php-livcyklus.png\" alt=\"PHP livscyklus\" width=\"335\" height=\"323\"><figcaption class=\"wp-caption-text\">PHP livscyklus (Billedekilde: <a href=\"https:\/\/phpinternals.net\/categories\/extensions\">PHP Internals<\/a>)<\/figcaption><\/figure>\n<p>S\u00e5dan virker preloading i Dmitrys ord:<\/p>\n<blockquote><p>Ved server opstart &#8211; inden der k\u00f8res en applikationskode &#8211; kan vi indl\u00e6se et bestemt s\u00e6t PHP-filer i hukommelsen &#8211; og g\u00f8re deres indhold &#8220;permanent tilg\u00e6ngelig&#8221; til alle efterf\u00f8lgende foresp\u00f8rgsler, som serveres af den p\u00e5g\u00e6ldende server. Alle de funktioner og klasser, der er defineret i disse filer, vil v\u00e6re direkte tilg\u00e6ngelige for foresp\u00f8rgsler, ligesom interne enheder.<\/p><\/blockquote>\n<p>Disse filer er indl\u00e6st ved server opstart, udf\u00f8res f\u00f8r enhver applikation og forbliver tilg\u00e6ngelig for fremtidige anmodninger. Det er godt med hensyn til ydeevne.<\/p>\n<p>Preloading styres af et specifikt <code>php.ini<\/code>-direktiv: <code>opcache.preload<\/code>. Dette direktiv angiver et PHP script, som skal udarbejdes og udf\u00f8res ved server opstart. Denne fil kan bruges til at forudindl\u00e6se yderligere filer, enten med dem eller via funktionen <code>opcache_compile_file ()<\/code> (l\u00e6s mere p\u00e5 <a href=\"https:\/\/www.php.net\/manual\/en\/function.opcache-compile-file.php\">PHP-dokumentation<\/a>).<\/p>\n<p>Men der er en ulempe. Faktisk siger RFC udtrykkeligt:<\/p>\n<blockquote><p>forudindl\u00e6ste filer forbliver cached i opcache-hukommelsen for evigt. \u00c6ndring af deres tilsvarende kildefiler vil ikke have nogen virkning uden en anden server genstart.<\/p><\/blockquote>\n<p>Alle funktioner, der er defineret i forudindl\u00e6ste filer, indl\u00e6ses dog permanent i PHP-funktion og klassetabeller og forbliver tilg\u00e6ngelige for hver fremtidig anmodning. Dette vil medf\u00f8re gode pr\u00e6stationsforbedringer, selv om disse forbedringer kan v\u00e6re betydeligt variable.<\/p>\n<p>Du kan l\u00e6se mere om begr\u00e6nsningerne og undtagelserne fra forudindl\u00e6sning p\u00e5 den officielle <a href=\"https:\/\/wiki.php.net\/rfc\/preload\">Preloading RFC-side<\/a>.<\/p>\n<h3 id=\"serialization\">Ny tilpasset objekt serialiserings-mekanisme<\/h3>\n<p>Dette er et <a href=\"https:\/\/nikic.github.io\/aboutMe.html\">andet forslag<\/a> fra Nikita Popov godkendt med stort flertal af stemmerne.<\/p>\n<p>I \u00f8jeblikket har vi to forskellige mekanismer til brugerdefineret serialisering af objekter i PHP:<\/p>\n<ul>\n<li><code>__sleep ()<\/code> og <code>__wakeup ()<\/code> magiske metoder<\/li>\n<li>The <code>Serializable<\/code> interface<\/li>\n<\/ul>\n<p>If\u00f8lge Nikita har begge disse muligheder problemer, der f\u00f8rer til komplekse og up\u00e5lidelige kode. Du kan dykke dybt ind i dette emne i <a href=\"https:\/\/wiki.php.net\/rfc\/custom_object_serialization\">RFC<\/a>. Her n\u00e6vner jeg bare, at den nye serialiserings-mekanisme b\u00f8r forhindre disse problemer ved at give to nye magiske metoder, <code>__serialize ()<\/code> og <code>__unserialize<\/code> (), der kombinerer de to eksisterende mekanismer.<\/p>\n<p>Dette forslag bestod med 20 til 7 stemmer.<\/p>\n<h3 id=\"deprecations\">Deprecations<\/h3>\n<p>F\u00f8lgende funktioner \/ funktionaliteter fjernes med PHP 7.4. For en mere omfattende liste over afskrivninger, s\u00e5 tjek <a href=\"https:\/\/github.com\/php\/php-src\/blob\/PHP-7.4\/UPGRADING\">PHP 7.4 opgraderings-noter<\/a>.<\/p>\n<h4>\u00c6ndre pr\u00e6cedens for samk\u00f8ringsoperat\u00f8ren<\/h4>\n<p>I PHP er &#8220;+&#8221; og &#8220;-&#8221; aritmetiske operat\u00f8rer og &#8220;.&#8221; Strengoperat\u00f8ren for tiden forbundne og har samme prioritet (l\u00e6s mere om <a href=\"https:\/\/www.php.net\/manual\/en\/language.operators.precedence.php\">Operator Precedence<\/a>).<\/p>\n<p>F.eks. Overvej f\u00f8lgende linje:<\/p>\n<pre><code class=\"language-php\">echo \"sum: \" . $a + $b;<\/code><\/pre>\n<p>I PHP 7.3 producerer denne kode f\u00f8lgende advarsel:<\/p>\n<pre><code class=\"language-php\">Warning: A non-numeric value encountered in \/app\/types.php on line 4<\/code><\/pre>\n<p>Dette fordi sammenkoblingen evalueres fra venstre mod h\u00f8jre. Det er det samme som at skrive f\u00f8lgende kode:<\/p>\n<pre><code class=\"language-php\">echo (\"sum: \" . $a) + $b;<\/code><\/pre>\n<p><a href=\"https:\/\/wiki.php.net\/rfc\/concatenation_precedence\">Denne RFC<\/a> foresl\u00e5r at \u00e6ndre operat\u00f8rernes forrang, idet &#8220;.&#8221; Der er lavere prioritet end &#8220;+&#8221; og &#8220;-&#8221; operat\u00f8rer, s\u00e5ledes at tilf\u00f8jelser og subtraktioner altid vil blive udf\u00f8rt f\u00f8r strengforbindelsen. Denne linje af kode skal svare til f\u00f8lgende:<\/p>\n<pre><code class=\"language-php\">echo \"sum: \" . ($a + $b);<\/code><\/pre>\n<p>Dette er et to-trins forslag:<\/p>\n<ul>\n<li>Fra og med version 7.4 skal PHP udsende en meddelelse om deprecation, n\u00e5r der opst\u00e5r et uh\u00e6mmet udtryk med &#8220;+&#8221;, &#8220;-&#8221; og &#8220;.&#8221;.<\/li>\n<li>Den faktiske forandring af forrang for disse operat\u00f8rer skal tilf\u00f8jes med <a href=\"https:\/\/kinsta.com\/dk\/blog\/php-8\/\">PHP 8<\/a>.<\/li>\n<\/ul>\n<p>Begge forslag er godkendt med stort flertal af stemmerne.<\/p>\n<h4>Deprecate venstre-associative tern\u00e6r operat\u00f8r<\/h4>\n<p>I PHP er den tern\u00e6re operat\u00f8r, i mods\u00e6tning til mange andre sprog, venstreforbundende. If\u00f8lge Nikita Popof kan dette v\u00e6re forvirrende for programm\u00f8rer, der skifter mellem forskellige sprog.<\/p>\n<p>I PHP er f\u00f8lgende kode korrekt:<\/p>\n<pre><code class=\"language-php\">$b = $a == 1 ? 'one' : $a == 2 ? 'two' : $a == 3 ? 'three' : 'other';<\/code><\/pre>\n<p>Det fortolkes som:<\/p>\n<pre><code class=\"language-php\">$b = (($a == 1 ? 'one' : $a == 2) ? 'two' : $a == 3) ? 'three' : 'other';<\/code><\/pre>\n<p>Og det kan f\u00f8re til fejl, fordi det m\u00e5ske ikke er, hvad vi har til hensigt at g\u00f8re. S\u00e5 denne RFC foresl\u00e5r at deprecere og fjerne brugen af venstre-associativitet for tern\u00e6re operat\u00f8rer og tvinge udviklere til at bruge parenteser.<\/p>\n<p>Dette er et andet to-trins forslag:<\/p>\n<ul>\n<li>Fra PHP 7.4 vil indlejrede ternarer uden eksplicit brug af parenteser kaste en deprecationsadvarsel.<\/li>\n<li><a href=\"https:\/\/kinsta.com\/dk\/blog\/php-8\/\">Fra PHP 8.0<\/a> vil der v\u00e6re en kompilering runtime fejl.<\/li>\n<\/ul>\n<p>Dette forslag er godkendt med 35 til 10 stemmer.<\/p>\n<h2 class=\"has-anchor-hash\">Hvad betyder PHP 7.4 for WordPress-brugere?<br \/>\n<span id=\"what-does-php-73-mean-for-wordpress-users\" class=\"anchor-hash\" aria-hidden=\"true\"><\/span><\/h2>\n<p>PHP er det mest udbredte programmeringssprog p\u00e5 serversiden p\u00e5 nettet. <a href=\"https:\/\/w3techs.com\/technologies\/details\/pl-php\/all\/all\">If\u00f8lge W3Techs <\/a>bruges PHP-brug pr. 2. december 2019 af 78,9% af alle websteder, som har programmeringssprog p\u00e5 serversiden, som de kan registrere.<\/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\/dk\/wp-content\/uploads\/sites\/12\/2019\/06\/php-brug-1.png\" alt=\"PHP-brug (december 2019)\" width=\"1376\" height=\"654\"><figcaption id=\"caption-attachment-63301\" class=\"wp-caption-text\">PHP-brug (december 2019)<\/figcaption><\/figure>\n<p>Desv\u00e6rre <a href=\"https:\/\/w3techs.com\/technologies\/details\/pl-php\/5\/all\">anvendes PHP 5 stadig af 44,0% af alle websteder<\/a> med et kendt programmeringssprog p\u00e5 server-side. Hvis du tilf\u00f8jer <a href=\"https:\/\/w3techs.com\/technologies\/details\/pl-php\/7\/all\">antallet af brugere, der stadig bruger PHP 7.0 og 7.1<\/a>,\u00a0 viser det sig, at et stort flertal af websteder k\u00f8rer ikke underst\u00f8ttede versioner af PHP.<\/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\/dk\/wp-content\/uploads\/sites\/12\/2018\/06\/supported-php-versions-for-wordpress-1.png\" alt=\"Supported PHP Versions for WordPress\" width=\"1726\" height=\"332\"><figcaption id=\"caption-attachment-63275\" class=\"wp-caption-text\">Underst\u00f8ttede PHP-versioner (Bildekilde: <a href=\"https:\/\/www.php.net\/supported-versions.php\">Supported Versions<\/a>)<\/figcaption><\/figure>\n<p>I henhold til den <a href=\"https:\/\/wordpress.org\/about\/stats\/\">officielle WordPress Stats-side<\/a> k\u00f8rer 64% af alle WordPress-websteder med ikke-underst\u00f8ttede versioner af PHP fra skrivning af dette. Kun lidt over 13% bruger <a href=\"https:\/\/kinsta.com\/dk\/changelog\/php-7-3-tilgaengelig-pa-mykinsta\/\">PHP 7.3<\/a>. Og den nyeste version, PHP 7.4, dukker ikke engang op endnu. Du kan se, at et stort flertal af brugere, over 23%, stadig k\u00f8rer p\u00e5 PHP 5.6\u00a0.<\/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\/dk\/wp-content\/uploads\/sites\/12\/2017\/03\/wordpress-php-versions-statistikker-3-1.png\" alt=\"WordPress PHP version statistikker\" width=\"1390\" height=\"1156\"><figcaption id=\"caption-attachment-63288\" class=\"wp-caption-text\">WordPress PHP version statistikker<\/figcaption><\/figure>\n<p>Vi anbefaler st\u00e6rkt at sp\u00f8rge din v\u00e6rt for en <a href=\"https:\/\/kinsta.com\/dk\/blog\/php-versioner\/\">underst\u00f8ttet version af PHP<\/a>, helst i henhold til <a href=\"https:\/\/wordpress.org\/about\/requirements\/\">de officielle krav fra WordPress<\/a>. Som dette skrives, maj 2019 kr\u00e6ver WordPress:<\/p>\n<ul>\n<li>PHP version 7.3 eller nyere.<\/li>\n<li>MySQL version 5.6 eller nyere ELLER <a href=\"https:\/\/kinsta.com\/dk\/blog\/mariadb-vs-mysql\/\">MariaDB<\/a> version 10.1 eller nyere.<\/li>\n<li>HTTPS-support<\/li>\n<\/ul>\n<h3 class=\"has-anchor-hash\">PHP 7 Performance<span id=\"php-7-performance\" class=\"anchor-hash\" aria-hidden=\"true\"><\/span><\/h3>\n<p>Tallene ovenfor er is\u00e6r nedsl\u00e5ende kommer fra et pr\u00e6stationssynspunkt, da PHP 7 har vist sig at v\u00e6re betydeligt hurtigere. Her er et par statistikker:<\/p>\n<ul>\n<li>Officielle PHP-<a href=\"http:\/\/talks.php.net\/fluent15#\/wpbench\">benchmarks<\/a> viser, at PHP 7 g\u00f8r det muligt for systemet at udf\u00f8re dobbelt s\u00e5 mange anmodninger pr. sekund i sammenligning med PHP 5.6 ved n\u00e6sten halvdelen af \u200b\u200blatens.<\/li>\n<li>Christian Vigh offentliggjorde ogs\u00e5 en <a href=\"https:\/\/www.phpclasses.org\/blog\/post\/493-php-performance-evolution.html\">PHP pr\u00e6stations sammenligning<\/a>, hvor han fandt ud af at PHP 5.2 var 400% langsommere end PHP 7.<\/li>\n<li>Andrei Avram s\u00e5 hurtigere eksekveringstider og <a href=\"https:\/\/blog.andreiavram.ro\/updates-php-performance-increase\/\">mindre hukommelsesforbrug i PHP 7,4<\/a> vers, nemlig PHP 7.3<\/li>\n<li>Phoronix l\u00f8b nogle tidlige <a href=\"https:\/\/phoronix.com\/scan.php?page=news_item&#038;px=PHP-7.4-Early-Benchmarks\">benchmark-test med PHP 7.4 Alpha<\/a> og s\u00e5, at det var lidt hurtigere end PHP 7.3.<\/li>\n<\/ul>\n<blockquote class=\"twitter-tweet\" data-width=\"500\" data-dnt=\"true\">\n<p lang=\"en\" dir=\"ltr\">Upgraded my <a href=\"https:\/\/twitter.com\/kinsta?ref_src=twsrc%5Etfw\">@kinsta<\/a> site to PHP 7.4 and it is like 10x faster. Woot!<\/p>\n<p>&mdash; Ronald Huereca (@RonaldHuereca) <a href=\"https:\/\/twitter.com\/RonaldHuereca\/status\/1201513866313777158?ref_src=twsrc%5Etfw\">December 2, 2019<\/a><\/p><\/blockquote>\n<p><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/p>\n<p>Vi k\u00f8rte vores egne <a href=\"https:\/\/kinsta.com\/dk\/blog\/php-benchmarks\/\">PHP performance benchmarks<\/a> med PHP 7.3. Vi s\u00e5, at WordPress 5.0 p\u00e5 PHP 7.3 kunne udf\u00f8re n\u00e6sten tre gange s\u00e5 mange transaktioner (anmodninger) pr. sekund i forhold til PHP 5.6. <strong>Vi frigiver PHP 7.4 benchmarks snart<\/strong>!<\/p>\n<figure style=\"width: 940px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/dk\/wp-content\/uploads\/sites\/12\/2018\/12\/wordpress-5-0-php-benchmarks-dk.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 \/ sek<\/li>\n<li>WordPress 5.0 PHP 7.0 benchmark resultater: 206.71 req \/ sek<\/li>\n<li>WordPress 5.0 PHP 7.1 benchmark resultater: 210.98 req \/ sek<\/li>\n<li>WordPress 5.0 PHP 7.2 benchmark resultater: 229.18 req \/ sek<\/li>\n<li>WordPress 5.0 <strong>PHP 7.3 benchmark resultater: 253.20 req \/ sek<\/strong> \ud83c\udfc6<\/li>\n<\/ul>\n<p>Mange er langsomme til at opdatere p\u00e5 grund af den tid, der er involveret i testning af nye alle deres tredjeparts plugins og temaer for at sikre, at de fungerer korrekt. Men mange gange kommer det ned til, at de simpelthen ikke har gjort det endnu.<\/p>\n<h3 class=\"has-anchor-hash\">Kontrol af din PHP-version<br \/>\n<span id=\"checking-your-php-version\" class=\"anchor-hash\" aria-hidden=\"true\"><\/span><\/h3>\n<p>Ikke sikker p\u00e5 hvilken version af PHP du k\u00f8rer? En af de nemmeste m\u00e5der at kontrollere er at bruge et v\u00e6rkt\u00f8j som <a href=\"https:\/\/kinsta.com\/dk\/blog\/pingdom-speed-test\/\">Pingdom<\/a> eller Google Chrome Devtools. Den f\u00f8rste HTTP-anmodningsoverskrift viser typisk versionen.<\/p>\n<figure style=\"width: 1542px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/dk\/wp-content\/uploads\/sites\/12\/2019\/06\/check-php-version-pingdom.png\" alt=\"Check PHP version i Pingdom\" width=\"1542\" height=\"864\"><figcaption class=\"wp-caption-text\">Check PHP version i Pingdom<\/figcaption><\/figure>\n<p>Dette afh\u00e6nger af, at v\u00e6rten ikke \u00e6ndrer <code>X-Powered-By<\/code> header-v\u00e6rdien. Men mange g\u00f8r af sikkerhedsm\u00e6ssige grunde (herunder Kinsta). Hvis det er tilf\u00e6ldet, kan du muligvis ikke se din PHP-version. I s\u00e5 fald, hvis du k\u00f8rer <a href=\"https:\/\/kinsta.com\/dk\/blog\/wordpress-5-2\/\">WordPress 5.2<\/a> eller nyere, er der et nyt websteds-sundhedsv\u00e6rkt\u00f8j, du kan bruge. G\u00e5 over til &#8220;V\u00e6rkt\u00f8jer&#8221; \u2192 &#8220;Site Health&#8221; \u2192 &#8220;Info&#8221; og under &#8220;Server&#8221; sektionen finder du din servers PHP-version.<\/p>\n<figure style=\"width: 1954px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/dk\/wp-content\/uploads\/sites\/12\/2019\/06\/tjek-php-version-wordpress-site-health-tool.png\" alt=\"Tjek PHP version med WordPress Site Health Tool\" width=\"1954\" height=\"720\"><figcaption class=\"wp-caption-text\">Tjek PHP version med WordPress Site Health Tool<\/figcaption><\/figure>\n<p>Alternativt kan du installere et gratis plugin som <a href=\"https:\/\/wordpress.org\/plugins\/version-info\/\">Version Info<\/a>, som viser dig nogle grundl\u00e6ggende serveroplysninger i foden af dit WordPress admin dashboard. Et par andre m\u00e5der at se din PHP-version p\u00e5 er at <a href=\"https:\/\/kinsta.com\/dk\/blog\/php-versioner\/\">uploade en fil via FTP<\/a>, eller blot n\u00e5 ud til din v\u00e6rt og sp\u00f8rge.<\/p>\n<h3 class=\"has-anchor-hash\">Opdatering til PHP 7.4<br \/>\n<span id=\"updating-to-php-74\" class=\"anchor-hash\" aria-hidden=\"true\"><\/span><\/h3>\n<p><strong>Den endelige version af PHP 7.4 er tilg\u00e6ngelig lige nu p\u00e5 Kinsta.<\/strong>\u00a0Alternativt kan du <a href=\"https:\/\/kinsta.com\/dk\/blog\/installeres-wordpress-lokalt\/\">teste dit WordPress-sted lokalt<\/a> eller kontrollere dine scripts i et milj\u00f8 som <a href=\"https:\/\/docs.docker.com\/get-started\/\">Docker<\/a>, som giver dig mulighed for at teste forskellige versioner af PHP fra kommandolinjen.<\/p>\n<p>Den nemmeste m\u00e5de at starte test er <a href=\"https:\/\/kinsta.com\/docs\/wordpress-hosting\/staging-environment\/\">at skabe et scenemilj\u00f8<\/a>, da dette ligner dit live produktionssted meget. Klik p\u00e5 dit websted i MyKinsta-betjeningspanelet og skift milj\u00f8et til scene.\u00a0.<\/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\/dk\/wp-content\/uploads\/sites\/12\/2019\/11\/opret-wordpress-scenemiljo-1.png\" alt=\"Opret WordPress scenemilj\u00f8\" width=\"1557\" height=\"750\"><figcaption id=\"caption-attachment-62780\" class=\"wp-caption-text\">Opret WordPress scenemilj\u00f8<\/figcaption><\/figure>\n<p>Skift derefter din PHP-motor under \u201cV\u00e6rkt\u00f8jer\u201d -menuen over til PHP 7.4 (Beta). Du kan derefter begynde at teste for at sikre kompatibiliteten af din kode, tredjeparts plugins og temaer.<\/p>\n<p>Som med tidligere versioner af PHP underst\u00f8tter vores <a href=\"https:\/\/kinsta.com\/dk\/changelog\/auto-db-optimeringer-v2\/#selfhealing-php\">selvhelende PHP-funktio<\/a>n PHP 7.4 fuldt ud. Hvis PHP falder af en eller anden grund, genstarter vi det automatisk. Hvis genstarten ikke l\u00f8ser problemet, advarer vores overv\u00e5gningssystem vores <a href=\"https:\/\/kinsta.com\/dk\/blog\/systemadministrator\/\">sysadmin-team<\/a> om at unders\u00f8ge \u00e5rsagen til problemet.<\/p>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-important\">\n            <h3>Important<\/h3>\n        <p>Selvom dette er en stabil udgivelse, <strong>opfordrer vi stadig st\u00e6<\/strong><strong>rkt alle<\/strong> til at teste PHP 7.4, f\u00f8r de bruger det p\u00e5 dit live site.<\/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\/dk\/wp-content\/uploads\/sites\/12\/2019\/12\/skift-til-php-7.4-7.png\" alt=\"Skift til PHP 7.4\" width=\"1565\" height=\"990\"><figcaption id=\"caption-attachment-63243\" class=\"wp-caption-text\">Skift til PHP 7.4<\/figcaption><\/figure>\n<p>Se detaljer vedr\u00f8rende <a href=\"https:\/\/kinsta.com\/dk\/changelog\/php-7-4\/\">PHP 7.4 frigivelse p\u00e5 Kinsta<\/a><u>.<\/u><\/p>\n<h3>Installation og k\u00f8rsel af PHP 7.4 p\u00e5 Docker<\/h3>\n<p>Vil du teste det p\u00e5 Docker? Heldigvis beh\u00f8ver du ikke at kompilere og konfigurere PHP 7.4 manuelt. Hvis du allerede har Docker installeret p\u00e5 dit system, skal du bare installere det uofficielle <a href=\"https:\/\/github.com\/devilbox\/docker-php-fpm-7.4\">PHP-FPM 7.4 Docker-billede<\/a> og k\u00f8re dine tests fra kommandolinjen p\u00e5 f\u00e5 sekunder.<\/p>\n<figure style=\"width: 570px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/dk\/wp-content\/uploads\/sites\/12\/2019\/05\/installation-nginx-docker-image.png\" alt=\"Installation af Nginx Docker Image\" width=\"570\" height=\"365\"><figcaption class=\"wp-caption-text\">Installation af Nginx Docker Image<\/figcaption><\/figure>\n<p>Hvis du foretr\u00e6kker at k\u00f8re din PHP 7.4-kode i din browser, skal du ogs\u00e5 installere et <a href=\"https:\/\/kinsta.com\/dk\/blog\/nginx-vs-apache\/\">Nginx- eller Apache<\/a>-billede. Men ingen bekymringer. Bare f\u00f8lg <a href=\"https:\/\/github.com\/devilbox\/docker-php-fpm-7.4#example\">udviklerens anvisninger<\/a>. Kopier og inds\u00e6t kommandoer fra Docker Image-siden til dit kommandolinjev\u00e6rkt\u00f8j, og du er klar til at k\u00f8re.<\/p>\n\n<h2>Resum\u00e9<\/h2>\n<p>I dette indl\u00e6g d\u00e6kkede vi et stort antal \u00e6ndringer og tilf\u00f8jelser, som vi kan forvente med udgivelsen af \u200b\u200bPHP 7.4. Hvis du leder efter den fulde liste over funktioner sammen med den officielle RFC-dokumentation, skal du tjekke f\u00f8lgende ressourcer:<\/p>\n<ul>\n<li><a href=\"https:\/\/wiki.php.net\/rfc#php_74\">PHP 7.4 Anmodninger om kommentarer<\/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 Forberedelsesopgaver<\/a><\/li>\n<\/ul>\n<p>Vi holder dig opdateret med alle de nyeste oplysninger om PHP 7.4. Hvis du er en Kinsta-klient, kan du allerede begynde at flytte dine WordPress-websteder til den nyeste version.<\/p>\n<p>Er du klar til at <a href=\"https:\/\/kinsta.com\/dk\/blog\/installeres-php\/\">installere og teste de kommende PHP-funktioner<\/a>? Hvilken er din favorit? Del dine tanker med os i kommentarerne nedenfor.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>PHP 7.4, den n\u00e6ste PHP 7 mindre udgivelse, er blevet frigivet til General Disponibilitet den 28. november 2019. S\u00e5 det er tid for os at dykke &#8230;<\/p>\n","protected":false},"author":36,"featured_media":32041,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[39,38],"topic":[726],"class_list":["post-32028","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-php","tag-webdev","topic-php-opdateringer"],"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>Hvad er nyt i PHP 7.4 (funktioner, afskrivninger, hastighed) - Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"PHP 7.4 kommer med nye funktioner, depreciations og et boost i ydeevne. Se dette dybdeg\u00e5ende overblik over, hvad der er nyt i 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\/dk\/blog\/php-7-4\/\" \/>\n<meta property=\"og:locale\" content=\"da_DK\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Hvad er nyt i PHP 7.4 (funktioner, afskrivninger, hastighed)\" \/>\n<meta property=\"og:description\" content=\"PHP 7.4 kommer med nye funktioner, depreciations og et boost i ydeevne. Se dette dybdeg\u00e5ende overblik over, hvad der er nyt i PHP 7.4!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/dk\/blog\/php-7-4\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Kinsta-Danmark-122855885298660\/\" \/>\n<meta property=\"article:published_time\" content=\"2019-07-15T05:14:18+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-08-28T05:56:23+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/dk\/wp-content\/uploads\/sites\/12\/2024\/11\/DK-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 kommer med nye funktioner, depreciations og et boost i ydeevne. Se dette dybdeg\u00e5ende overblik over, hvad der er nyt i 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_dk\" \/>\n<meta name=\"twitter:label1\" content=\"Skrevet af\" \/>\n\t<meta name=\"twitter:data1\" content=\"Carlo Daniele\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimeret l\u00e6setid\" \/>\n\t<meta name=\"twitter:data2\" content=\"18 minutter\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/dk\/blog\/php-7-4\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/dk\/blog\/php-7-4\/\"},\"author\":{\"name\":\"Carlo Daniele\",\"@id\":\"https:\/\/kinsta.com\/dk\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63\"},\"headline\":\"Hvad er nyt i PHP 7.4 (funktioner, afskrivninger, hastighed)\",\"datePublished\":\"2019-07-15T05:14:18+00:00\",\"dateModified\":\"2023-08-28T05:56:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/dk\/blog\/php-7-4\/\"},\"wordCount\":3203,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/dk\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/dk\/blog\/php-7-4\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/dk\/wp-content\/uploads\/sites\/12\/2019\/07\/hvad-nyt-php-7-4.jpg\",\"keywords\":[\"php\",\"webdev\"],\"articleSection\":[\"Wordpress Udvikling\"],\"inLanguage\":\"da-DK\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/dk\/blog\/php-7-4\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/dk\/blog\/php-7-4\/\",\"url\":\"https:\/\/kinsta.com\/dk\/blog\/php-7-4\/\",\"name\":\"Hvad er nyt i PHP 7.4 (funktioner, afskrivninger, hastighed) - Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/dk\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/dk\/blog\/php-7-4\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/dk\/blog\/php-7-4\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/dk\/wp-content\/uploads\/sites\/12\/2019\/07\/hvad-nyt-php-7-4.jpg\",\"datePublished\":\"2019-07-15T05:14:18+00:00\",\"dateModified\":\"2023-08-28T05:56:23+00:00\",\"description\":\"PHP 7.4 kommer med nye funktioner, depreciations og et boost i ydeevne. Se dette dybdeg\u00e5ende overblik over, hvad der er nyt i PHP 7.4!\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/dk\/blog\/php-7-4\/#breadcrumb\"},\"inLanguage\":\"da-DK\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/dk\/blog\/php-7-4\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"da-DK\",\"@id\":\"https:\/\/kinsta.com\/dk\/blog\/php-7-4\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/dk\/wp-content\/uploads\/sites\/12\/2019\/07\/hvad-nyt-php-7-4.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/dk\/wp-content\/uploads\/sites\/12\/2019\/07\/hvad-nyt-php-7-4.jpg\",\"width\":1460,\"height\":730,\"caption\":\"Hvad er nyt i PHP 7.4 (funktioner, afskrivninger, hastighed)\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/dk\/blog\/php-7-4\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/dk\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PHP opdateringer\",\"item\":\"https:\/\/kinsta.com\/dk\/emner\/php-opdateringer\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Hvad er nyt i PHP 7.4 (funktioner, afskrivninger, hastighed)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/dk\/#website\",\"url\":\"https:\/\/kinsta.com\/dk\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Hurtig, sikker, premium hostingl\u00f8sninger\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/dk\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/dk\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"da-DK\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/dk\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/dk\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"da-DK\",\"@id\":\"https:\/\/kinsta.com\/dk\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/dk\/wp-content\/uploads\/sites\/12\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/dk\/wp-content\/uploads\/sites\/12\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/dk\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Kinsta-Danmark-122855885298660\/\",\"https:\/\/x.com\/kinsta_dk\",\"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\/dk\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63\",\"name\":\"Carlo Daniele\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"da-DK\",\"@id\":\"https:\/\/kinsta.com\/dk\/#\/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\/dk\/blog\/author\/carlodaniele\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Hvad er nyt i PHP 7.4 (funktioner, afskrivninger, hastighed) - Kinsta\u00ae","description":"PHP 7.4 kommer med nye funktioner, depreciations og et boost i ydeevne. Se dette dybdeg\u00e5ende overblik over, hvad der er nyt i 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\/dk\/blog\/php-7-4\/","og_locale":"da_DK","og_type":"article","og_title":"Hvad er nyt i PHP 7.4 (funktioner, afskrivninger, hastighed)","og_description":"PHP 7.4 kommer med nye funktioner, depreciations og et boost i ydeevne. Se dette dybdeg\u00e5ende overblik over, hvad der er nyt i PHP 7.4!","og_url":"https:\/\/kinsta.com\/dk\/blog\/php-7-4\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/Kinsta-Danmark-122855885298660\/","article_published_time":"2019-07-15T05:14:18+00:00","article_modified_time":"2023-08-28T05:56:23+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/kinsta.com\/dk\/wp-content\/uploads\/sites\/12\/2024\/11\/DK-Homepage-featured-image.png","type":"image\/png"}],"author":"Carlo Daniele","twitter_card":"summary_large_image","twitter_description":"PHP 7.4 kommer med nye funktioner, depreciations og et boost i ydeevne. Se dette dybdeg\u00e5ende overblik over, hvad der er nyt i PHP 7.4!","twitter_image":"https:\/\/kinsta.com\/wp-content\/uploads\/2019\/06\/php-7.4.jpg","twitter_creator":"@carlodaniele","twitter_site":"@kinsta_dk","twitter_misc":{"Skrevet af":"Carlo Daniele","Estimeret l\u00e6setid":"18 minutter"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/dk\/blog\/php-7-4\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/dk\/blog\/php-7-4\/"},"author":{"name":"Carlo Daniele","@id":"https:\/\/kinsta.com\/dk\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63"},"headline":"Hvad er nyt i PHP 7.4 (funktioner, afskrivninger, hastighed)","datePublished":"2019-07-15T05:14:18+00:00","dateModified":"2023-08-28T05:56:23+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/dk\/blog\/php-7-4\/"},"wordCount":3203,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/dk\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/dk\/blog\/php-7-4\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/dk\/wp-content\/uploads\/sites\/12\/2019\/07\/hvad-nyt-php-7-4.jpg","keywords":["php","webdev"],"articleSection":["Wordpress Udvikling"],"inLanguage":"da-DK","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/dk\/blog\/php-7-4\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/dk\/blog\/php-7-4\/","url":"https:\/\/kinsta.com\/dk\/blog\/php-7-4\/","name":"Hvad er nyt i PHP 7.4 (funktioner, afskrivninger, hastighed) - Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinsta.com\/dk\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/dk\/blog\/php-7-4\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/dk\/blog\/php-7-4\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/dk\/wp-content\/uploads\/sites\/12\/2019\/07\/hvad-nyt-php-7-4.jpg","datePublished":"2019-07-15T05:14:18+00:00","dateModified":"2023-08-28T05:56:23+00:00","description":"PHP 7.4 kommer med nye funktioner, depreciations og et boost i ydeevne. Se dette dybdeg\u00e5ende overblik over, hvad der er nyt i PHP 7.4!","breadcrumb":{"@id":"https:\/\/kinsta.com\/dk\/blog\/php-7-4\/#breadcrumb"},"inLanguage":"da-DK","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/dk\/blog\/php-7-4\/"]}]},{"@type":"ImageObject","inLanguage":"da-DK","@id":"https:\/\/kinsta.com\/dk\/blog\/php-7-4\/#primaryimage","url":"https:\/\/kinsta.com\/dk\/wp-content\/uploads\/sites\/12\/2019\/07\/hvad-nyt-php-7-4.jpg","contentUrl":"https:\/\/kinsta.com\/dk\/wp-content\/uploads\/sites\/12\/2019\/07\/hvad-nyt-php-7-4.jpg","width":1460,"height":730,"caption":"Hvad er nyt i PHP 7.4 (funktioner, afskrivninger, hastighed)"},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/dk\/blog\/php-7-4\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/dk\/"},{"@type":"ListItem","position":2,"name":"PHP opdateringer","item":"https:\/\/kinsta.com\/dk\/emner\/php-opdateringer\/"},{"@type":"ListItem","position":3,"name":"Hvad er nyt i PHP 7.4 (funktioner, afskrivninger, hastighed)"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/dk\/#website","url":"https:\/\/kinsta.com\/dk\/","name":"Kinsta\u00ae","description":"Hurtig, sikker, premium hostingl\u00f8sninger","publisher":{"@id":"https:\/\/kinsta.com\/dk\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/dk\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"da-DK"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/dk\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/dk\/","logo":{"@type":"ImageObject","inLanguage":"da-DK","@id":"https:\/\/kinsta.com\/dk\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/dk\/wp-content\/uploads\/sites\/12\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/dk\/wp-content\/uploads\/sites\/12\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/dk\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Kinsta-Danmark-122855885298660\/","https:\/\/x.com\/kinsta_dk","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\/dk\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63","name":"Carlo Daniele","image":{"@type":"ImageObject","inLanguage":"da-DK","@id":"https:\/\/kinsta.com\/dk\/#\/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\/dk\/blog\/author\/carlodaniele\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/dk\/wp-json\/wp\/v2\/posts\/32028","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/dk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/dk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/dk\/wp-json\/wp\/v2\/users\/36"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/dk\/wp-json\/wp\/v2\/comments?post=32028"}],"version-history":[{"count":16,"href":"https:\/\/kinsta.com\/dk\/wp-json\/wp\/v2\/posts\/32028\/revisions"}],"predecessor-version":[{"id":47092,"href":"https:\/\/kinsta.com\/dk\/wp-json\/wp\/v2\/posts\/32028\/revisions\/47092"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/dk\/wp-json\/kinsta\/v1\/posts\/32028\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/dk\/wp-json\/kinsta\/v1\/posts\/32028\/translations\/it"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/dk\/wp-json\/kinsta\/v1\/posts\/32028\/translations\/nl"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/dk\/wp-json\/kinsta\/v1\/posts\/32028\/translations\/fr"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/dk\/wp-json\/kinsta\/v1\/posts\/32028\/translations\/es"},{"embeddable":true,"hreflang":"da","title":"Danish","href":"https:\/\/kinsta.com\/dk\/wp-json\/kinsta\/v1\/posts\/32028\/translations\/dk"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/dk\/wp-json\/kinsta\/v1\/posts\/32028\/translations\/jp"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/dk\/wp-json\/kinsta\/v1\/posts\/32028\/translations\/de"},{"embeddable":true,"hreflang":"sv","title":"Swedish","href":"https:\/\/kinsta.com\/dk\/wp-json\/kinsta\/v1\/posts\/32028\/translations\/se"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/dk\/wp-json\/kinsta\/v1\/posts\/32028\/translations\/pt"},{"href":"https:\/\/kinsta.com\/dk\/wp-json\/kinsta\/v1\/posts\/32028\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/dk\/wp-json\/wp\/v2\/media\/32041"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/dk\/wp-json\/wp\/v2\/media?parent=32028"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/dk\/wp-json\/wp\/v2\/tags?post=32028"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/dk\/wp-json\/wp\/v2\/topic?post=32028"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}