{"id":21851,"date":"2018-08-29T09:30:59","date_gmt":"2018-08-29T16:30:59","guid":{"rendered":"https:\/\/kinsta.com\/?p=31095"},"modified":"2023-02-01T15:10:50","modified_gmt":"2023-02-01T14:10:50","slug":"php-7-3","status":"publish","type":"post","link":"https:\/\/kinsta.com\/it\/blog\/php-7-3\/","title":{"rendered":"Le Novit\u00e0 di PHP 7.3 (Ora Disponibile su Kinsta)"},"content":{"rendered":"<p>Dal 6 dicembre 2018, PHP 7.3, la pi\u00f9 recente versione di PHP \u00e8 qui! Questa versione porta con s\u00e9 nuove utili funzionalit\u00e0, deprecazioni, un buon numero di correzioni di bug e miglioramenti nelle performance. <strong>Inoltre, PHP 7.3 \u00e8 adesso disponibile per tutti i clienti di Kinsta<\/strong> nel <a href=\"https:\/\/my.kinsta.com\/sites\/tools\/?lang=it\" target=\"_blank\" rel=\"noopener noreferrer\">cruscotto MyKinsta<\/a>. \ud83e\udd18<\/p>\n<p><strong>Aggiornamento:<\/strong> <a href=\"https:\/\/kinsta.com\/it\/changelog\/php-8-1\/\">PHP 8.1 (versione ufficiale)<\/a> \u00e8 ora disponibile per tutti i clienti Kinsta. Kinsta non supporta pi\u00f9 PHP 7.3 n\u00e9 le versioni di PHP 7.4, 8.0, 8.1, 8.2, 8.3, 8.4 e 8.5.<\/p>\n<p>In questo post forniremo una panoramica delle funzionalit\u00e0 e delle modifiche che riteniamo pi\u00f9 rilevanti. Ma potete sempre dare un&#8217;occhiata all&#8217;elenco completo delle funzionalit\u00e0, delle modifiche e delle correzioni di bug in <a href=\"https:\/\/github.com\/php\/php-src\/blob\/php-7.3.0beta1\/UPGRADING\" target=\"_blank\" rel=\"noopener noreferrer\">PHP 7.3 upgrade notes<\/a> e <a href=\"https:\/\/wiki.php.net\/rfc#php_73\" target=\"_blank\" rel=\"noopener noreferrer\">PHP 7.3 Requests For Comments<\/a>.<\/p>\n\n<h2>Cosa C&#8217;\u00c8 di Nuovo in PHP con PHP 7.3?<\/h2>\n<p>In questo post analizzeremo le seguenti modifiche di PHP 7.3:<\/p>\n<ul>\n<li><a href=\"#heredoc-nowdoc\">Implementazione delle Sintassi Flessibili di Heredoc e Nowdoc<\/a><\/li>\n<li><a href=\"#virgola-finale-nelle-chiamate-di-funzione\">Possibilit\u00e0 di Inserire una Virgola Finale nelle Chiamate di Funzioni<\/a><\/li>\n<li><a href=\"#JSON_THROW_ON_ERROR\">JSON_THROW_ON_ERROR<\/a><\/li>\n<li><a href=\"#list\">Assegnazione Per Riferimento in list()<\/a><\/li>\n<li><a href=\"#is-countable\">La Funzione is_countable<\/a><\/li>\n<li><a href=\"#array-key-first-last\">array_key_first(), array_key_last()<\/a><\/li>\n<li><a href=\"#argon2\">Miglioramenti all&#8217;Hash delle Password di Argon2<\/a><\/li>\n<li><a href=\"#deprecazioni\">Deprecazioni<\/a><\/li>\n<\/ul>\n<h2 id=\"heredoc-nowdoc\">Sintassi Heredoc e Nowdoc Flessibili<\/h2>\n<p>Questa \u00e8 probabilmente una delle modifiche pi\u00f9 rilevanti in arrivo con PHP 7.3, e pensiamo che meriti un po&#8217; di attenzione in pi\u00f9. Quindi, prima di passare alle modifiche apportate da PHP 7.3 a heredoc e nowdoc, forniremo una rapida panoramica di questa utile funzionalit\u00e0 core. Se conoscete gi\u00e0 bene le sintassi di nowdoc ed heredoc, saltate pure alle novit\u00e0 di PHP 7.3.<\/p>\n<ul>\n<li><a href=\"#panoramica-heredoc-nowdoc\">Una Panoramica Delle Sintassi Heredoc e Nowdoc<\/a><\/li>\n<li><a href=\"#indentazione-heredoc-nowdoc\">PHP 7.3: Possibilit\u00e0 di Indentare il Marker di Chiusura e di Eliminare gli Spazi Bianchi Iniziali<\/a><\/li>\n<li><a href=\"#marker-di-chiusura-heredoc-nowdoc-closing-marker\">PHP 7.3: Rimozione del Requisito della Nuova Riga Finale per il Marker di Chiusura<\/a><\/li>\n<\/ul>\n<h3 id=\"panoramica-heredoc-nowdoc\">Una Panoramica delle Sintassi Heredoc e Nowdoc<\/h3>\n<p><strong>La sintassi heredoc fornisce un modo per aggiungere una grande quantit\u00e0 di testo senza la necessit\u00e0 di effettuare l&#8217;escape di cose come le doppie virgolette<\/strong>. Un heredoc inizia con <code>&lt;&lt;&lt;<\/code> seguito da un marker e termina con lo stesso marker seguito da un punto e virgola. Ecco un esempio:<\/p>\n<pre><code class=\"language-php\">print &lt;&lt;&lt;EOT\nHeredoc text behaves just like a double-quoted string, without the double quotes.\nEOT;<\/code><\/pre>\n<p>Un nowdoc si comporta in modo molto simile ad un heredoc, ma con alcune eccezioni:<\/p>\n<ul>\n<li>L&#8217;identificatore \u00e8 racchiuso tra virgolette singole (<code>&lt;&lt;&lt;'EOT'<\/code>)<\/li>\n<li>Nessun parsing viene eseguito all&#8217;interno di un nowdoc<\/li>\n<\/ul>\n<p>Ecco un esempio di nowdoc:<\/p>\n<pre><code class=\"language-php\">print &lt;&lt;&lt;'EOT'\nNowdocs are to single-quoted strings what heredocs are to double-quoted strings.\nEOT;<\/code><\/pre>\n<p>Heredoc e nowdoc condividono le stesse regole di utilizzo del marker di chiusura:<\/p>\n<ol>\n<li>Il marker di chiusura deve iniziare nella prima colonna della linea<\/li>\n<li>Il marker deve seguire le stesse regole di denominazione di qualsiasi altra etichetta in PHP: deve contenere solo caratteri alfanumerici e caratteri di sottolineatura e deve iniziare con un carattere non numerico o con un underscore.<\/li>\n<\/ol>\n<p>Il <a href=\"http:\/\/php.net\/manual\/en\/language.types.string.php#language.types.string.syntax.heredoc\" target=\"_blank\" rel=\"noopener noreferrer\">manuale PHP<\/a> avverte:<\/p>\n<blockquote><p>\u00c8 molto importante notare che la linea con l&#8217;identificatore di chiusura non deve contenere altri caratteri, eccetto un punto e virgola (;). Ci\u00f2 significa in particolare che l&#8217;identificatore non pu\u00f2 essere indentato e non possono esserci spazi o tabulazioni prima o dopo il punto e virgola. \u00c8 anche importante comprendere che il primo carattere prima dell&#8217;identificatore di chiusura deve essere una nuova riga, come definita dal sistema operativo locale. Questo \u00e8 <code>\\n<\/code> sui sistemi UNIX, macOS compreso. Il delimitatore di chiusura, inoltre, deve essere seguito da una nuova riga.<\/p><\/blockquote>\n<p><strong>Sintassi PHP 7.2 non valida:<\/strong><\/p>\n<pre><code class=\"language-php\">class foo {\n    public $bar = &lt;&lt;&lt;EOT\n    bar\n    EOT;\n}\n\/\/ Identifier must not be indented<\/code><\/pre>\n<p><strong>Sintassi PHP 7.2 valida:<\/strong><\/p>\n<pre><code class=\"language-php\">class foo {\n    public $bar = &lt;&lt;&lt;EOT\nbar\nEOT;\n}<\/code><\/pre>\n<p>Per farla breve, in PHP 7.2:<\/p>\n<ul>\n<li>Il marker di chiusura non pu\u00f2 essere indentato<\/li>\n<li>La linea con il marker di chiusura non pu\u00f2 contenere caratteri come spazi o tabulazioni<\/li>\n<li>Il primo carattere prima del marker di chiusura deve essere una nuova riga<\/li>\n<li>Il marker di chiusura deve essere seguito da una nuova riga<\/li>\n<\/ul>\n<p>\u00c8 chiaro, quindi, che le sintassi di heredoc e nowdoc sono piuttosto restrittive, ma PHP 7.3 potrebbe cambiare un po&#8217; le cose con i miglioramenti illustrati di seguito.<\/p>\n<h3 id=\"indentazione-heredoc-nowdoc\">1. Possibilit\u00e0 di Indentare il Marker di Chiusura e di Eliminare gli Spazi Bianchi Iniziali<\/h3>\n<p><strong>Con PHP 7.3 ci \u00e8 permesso indentare il marker di chiusura<\/strong> e possiamo tranquillamente scrivere il seguente codice:<\/p>\n<pre><code class=\"language-php\">class foo {\n    public $bar = &lt;&lt;&lt;EOT\n        bar\n    EOT;\n}<\/code><\/pre>\n<p>L&#8217;indentazione del marker di chiusura stabilisce il numero di spazi bianchi (o tabulazioni) che saranno eliminati da ogni linea del corpo del testo. Ma attenzione: <strong>il marker di chiusura non deve mai essere indentato al di l\u00e0 di qualsiasi altra linea del corpo del testo<\/strong>.<\/p>\n<p>Prendiamo il seguente codice:<\/p>\n<pre><code class=\"language-php\">class foo {\n    public $bar = &lt;&lt;&lt;EOT\n    bar\n        EOT;\n}<\/code><\/pre>\n<p>Questo codice emetterebbe il seguente parse error:<\/p>\n<pre>Parse error: Invalid body indentation level (expecting an indentation at least ...) in %s on line %d<\/pre>\n<p>L&#8217;eliminazione delle tabulazioni e degli spazi bianchi ci permette di indentare il corpo di heredoc e nowdoc allo stesso livello del codice, e senza avere spazi bianchi non necessari prima di ogni riga.<\/p>\n<p>Possiamo utilizzare per l&#8217;indentazione sia le tabulazioni che gli spazi, ma non ci \u00e8 permesso di utilizzarli mescolati. Ci\u00f2 significa che <strong>dobbiamo usare gli stessi caratteri di indentazione per il marker di chiusura e per qualsiasi linea del corpo<\/strong>. In caso di caratteri di indentazione diversi, ci dovremo aspettare un diverso tipo di errore di parsing (indentazione non valida).<\/p>\n<h3 id=\"marker-di-chiusura-heredoc-nowdoc-closing-marker\">2. Rimozione del Requisito della Nuova Riga Finale per il Marker di Chiusura<\/h3>\n<p>Attualmente, una nuova riga deve seguire il marcatore per terminare un heredoc\/nowdoc. PHP 7.3 dovrebbe cambiare questo stato di cose e ci permetter\u00e0 di terminare l&#8217;heredoc\/nowdoc sulla stessa riga. Ecco un esempio della RFC:<\/p>\n<p><strong>Sintassi PHP 7.2 valida:<\/strong><\/p>\n<pre><code class=\"language-php\">$values = [&lt;&lt;&lt;END\na\nb\nc\nEND\n, 'd e f'];<\/code><\/pre>\n<p><strong>Sintassi PHP 7.3 valida:<\/strong><\/p>\n<pre><code class=\"language-php\">$values = [&lt;&lt;&lt;END\na\nb\nc\nEND, 'd e f'];<\/code><\/pre>\n<p>Ad ogni modo, fate attenzione quando scegliete il nome del vostro marcatore perch\u00e9 &#8220;occasionalmente&#8221; potreste aspettarvi un errore se questo corrisponde a una parola che avete usato nel corpo dell&#8217;heredoc\/nowdoc (per un approfondimento, si legga la <a href=\"https:\/\/wiki.php.net\/rfc\/flexible_heredoc_nowdoc_syntaxes\" target=\"_blank\" rel=\"noopener noreferrer\">RFC<\/a> e <a href=\"https:\/\/github.com\/php\/php-src\/blob\/php-7.3.0beta1\/UPGRADING#L33\" target=\"_blank\" rel=\"noopener noreferrer\">GitHub<\/a>).<\/p>\n<p>Entrambe le proposte sono state approvate con pi\u00f9 di 2\/3 dei voti.<\/p>\n<h4>RFC PHP 7.3<\/h4>\n<ul>\n<li><a href=\"https:\/\/wiki.php.net\/rfc\/flexible_heredoc_nowdoc_syntaxes\" target=\"_blank\" rel=\"noopener noreferrer\">Flexible Heredoc and Nowdoc Syntaxes<\/a><\/li>\n<\/ul>\n<h4>Altre Risorse<\/h4>\n<ul>\n<li><a href=\"http:\/\/php.net\/manual\/en\/language.types.string.php#language.types.string.syntax.heredoc\" target=\"_blank\" rel=\"noopener noreferrer\">Heredoc string syntax<\/a><\/li>\n<li><a href=\"http:\/\/php.net\/manual\/en\/language.types.string.php#language.types.string.syntax.nowdoc\" target=\"_blank\" rel=\"noopener noreferrer\">Nowdoc string syntax<\/a><\/li>\n<\/ul>\n<h2 id=\"virgola-finale-nelle-chiamate-di-funzione\">Possibilit\u00e0 di Inserire una Virgola Finale nelle Chiamate di Funzioni<\/h2>\n<p>Le virgole finali sono delle virgole aggiunte ad un elenco di elementi, parametri o propriet\u00e0 e sono utili in contesti in cui nuovi valori vengono aggiunti di frequente, perch\u00e9 impediscono errori dovuti a una virgola mancante. In PHP le virgole finali sono consentite negli array e, a partire da <a href=\"https:\/\/kinsta.com\/it\/blog\/php-7-2\/\" target=\"_blank\" rel=\"noopener noreferrer\">PHP 7.2<\/a>, sono consentiti nei namespace raggruppati.<\/p>\n<p>A partire da PHP 7.3, le virgole finali sono consentite nelle dichiarazioni di funzione. Le <a href=\"https:\/\/it.wikipedia.org\/wiki\/Funzione_variadica\" target=\"_blank\" rel=\"noopener noreferrer\">funzioni variadiche<\/a> offrono un esempio di contesto in cui le virgole finali sono estremamente utili:<\/p>\n<pre><code class=\"language-php\">foo(\n    $bar,\n    $baz,\n);<\/code><\/pre>\n<p>Possiamo utilizzare una virgola finale quando stiamo creando un array con <code>compact()<\/code>, per restituire una stringa formattata con <code>sprintf()<\/code>, oppure quando si combinano degli array:<\/p>\n<pre><code class=\"language-php\">$newArray = array_merge(\n    $arrayOne,\n    $arrayTwo,\n    ['foo', 'bar'],\n);<\/code><\/pre>\n<p>Inoltre, le virgole finali possono essere utili per il debug:<\/p>\n<pre><code class=\"language-php\">var_dump(\n    $foo,\n    $bar,\n    $baz,\n);<\/code><\/pre>\n<p>E sono davvero potenti con <code>unset()<\/code> ed <code>isset()<\/code>:<\/p>\n<pre><code class=\"language-php\">unset(\n    $foo,\n    $bar,\n    $baz,\n);\n\nisset(\n    $foo,\n    $bar,\n    $baz,\n);<\/code><\/pre>\n<p>Le virgole finali saranno consentite anche nelle chiamate di metodi e nelle enclosure.<\/p>\n<p>Nota: <strong>questa modifica influir\u00e0 solo sulle chiamate di funzione. La sintassi delle dichiarazioni di funzione non cambier\u00e0<\/strong>. Inoltre, le virgole indipendenti, le virgole multiple e le virgole iniziali non saranno consentite.<\/p>\n<p>Ulteriori esempi possono essere trovati sulla <a href=\"https:\/\/wiki.php.net\/rfc\/trailing-comma-function-calls\" target=\"_blank\" rel=\"noopener noreferrer\">pagina della RFC<\/a>. Questa RFC \u00e8 stata approvata con 30 voti a favore e 10 contrari.<\/p>\n<h4>PHP 7.3 RFC<\/h4>\n<ul>\n<li><a href=\"https:\/\/wiki.php.net\/rfc\/flexible_heredoc_nowdoc_syntaxes\" target=\"_blank\" rel=\"noopener noreferrer\">Flexible Heredoc and Nowdoc Syntaxes<\/a><\/li>\n<\/ul>\n<h2 id=\"JSON_THROW_ON_ERROR\">JSON_THROW_ON_ERROR<\/h2>\n<p>Una delle funzionalit\u00e0 pi\u00f9 apprezzate che arriveranno con PHP 7.3 riguarda una nuova modalit\u00e0 di gestione degli errori JSON. Questa non \u00e8 una funzionalit\u00e0 core, ma un&#8217;aggiunta all&#8217;estensione JSON che cambier\u00e0 il comportamento in caso di errore di <code>json_decode()<\/code> e <code>json_encode()<\/code>.<\/p>\n<p>Attualmente, <code>json_decode()<\/code> restituisce <code>null<\/code> in caso di errore, ma anche <code>null<\/code> pu\u00f2 essere un risultato valido. Questo potrebbe essere fonte di confusione, perch\u00e9<\/p>\n<blockquote><p>\u00c8 possibile sapere se si \u00e8 verificato un errore solo invocando <code>json_last_error()<\/code> o <code>json_last_error_msg()<\/code>, che restituiscono lo stato di errore globale rispettivamente nei moduli leggibili dalla macchina e leggibili dall&#8217;uomo. &#8211; <a href=\"https:\/\/wiki.php.net\/rfc\/json_throw_on_error\" target=\"_blank\" rel=\"noopener noreferrer\">PHP RFC<\/a><\/p><\/blockquote>\n<p><code>json_encode()<\/code> restituisce <code>FALSE<\/code> in caso di errore. Questo \u00e8 pi\u00f9 chiaro perch\u00e9 c&#8217;\u00e8 uno specifico valore per l&#8217;errore. Ad ogni modo, <strong>entrambe le funzioni non interrompono l&#8217;esecuzione del programma in caso di errore, n\u00e9 generano alcun avviso<\/strong>.<\/p>\n<p>Detto questo, ecco la proposta per PHP 7.3:<\/p>\n<blockquote><p>Questa RFC propone invece di aggiungere un nuovo valore per l&#8217;option flag di <code>json_decode()<\/code> e <code>json_encode()<\/code>, <code>JSON_THROW_ON_ERROR<\/code>. Quando viene passato questo flag, viene modificato il comportamento di queste funzioni in caso di errore. Lo stato di errore globale non viene modificato e, se si verifica un errore che avrebbe potuto impostarlo in altro modo, queste funzioni generano invece una <code>JsonException<\/code> con il messaggio e il codice impostato allo stesso valore che sarebbe risultato altrimenti con <code>json_last_error()<\/code> e <code>json_last_error_msg()<\/code>.<\/p><\/blockquote>\n<p>Ecco un esempio che mostra un modo semplice per emettere un errore JSON:<\/p>\n<pre><code class=\"language-php\">try {\n    json_decode(\"{\", false, 512, JSON_THROW_ON_ERROR);\n}\ncatch (\\JsonException $exception) {\n    echo $exception-&gt;getMessage(); \/\/ echoes \"Syntax error\"\n}<\/code><\/pre>\n<p>L&#8217;emissione di un&#8217;eccezione in caso di errore dovrebbe assicurare diversi vantaggi che sono elencati nella <a href=\"https:\/\/wiki.php.net\/rfc\/json_throw_on_error\" target=\"_blank\" rel=\"noopener noreferrer\">RFC<\/a>.<\/p>\n<p>Nota: un parametro di profondit\u00e0 non valido passato a <code>json_decode()<\/code> genera un avviso e restituisce <code>NULL<\/code>. Questo comportamento non sar\u00e0 influenzato da <code>JSON_THROW_ON_ERROR<\/code>. Allo stesso modo, gli errori di parsing dei parametri non sono influenzati da <code>JSON_THROW_ON_ERROR<\/code> e continueranno a generare avvisi.<\/p>\n<p>Questa proposta \u00e8 stata approvata con 23 voti a 0.<\/p>\n<h4>RFC PHP 7.3<\/h4>\n<ul>\n<li><a href=\"https:\/\/wiki.php.net\/rfc\/json_throw_on_error\" target=\"_blank\" rel=\"noopener noreferrer\">JSON_THROW_ON_ERROR<\/a><\/li>\n<\/ul>\n<h4>Altre Risorse<\/h4>\n<ul>\n<li><a href=\"http:\/\/php.net\/manual\/en\/book.json.php\" target=\"_blank\" rel=\"noopener noreferrer\">JavaScript Object Notation<\/a><\/li>\n<li><a href=\"http:\/\/php.net\/manual\/en\/function.json-decode.php\" target=\"_blank\" rel=\"noopener noreferrer\">json_decode()<\/a><\/li>\n<li><a href=\"http:\/\/php.net\/manual\/en\/function.json_encode\" target=\"_blank\" rel=\"noopener noreferrer\">json_encode()<\/a><\/li>\n<li><a href=\"http:\/\/php.net\/manual\/en\/function.json-last-error.php\" target=\"_blank\" rel=\"noopener noreferrer\">json_last_error()<\/a><\/li>\n<li><a href=\"http:\/\/php.net\/manual\/en\/function.json-last-error-msg.php\" target=\"_blank\" rel=\"noopener noreferrer\">json_last_error_msg()<\/a><\/li>\n<li><a href=\"http:\/\/php.net\/manual\/en\/language.exceptions.php\" target=\"_blank\" rel=\"noopener noreferrer\">PHP Language Exceptions<\/a><\/li>\n<\/ul>\n<h2 id=\"list\">Assegnazione Per Riferimento in list()<\/h2>\n<h3>Cosa Significa Assegnazione Per Riferimento?<\/h3>\n<p>Considerate la seguente riga:<\/p>\n<pre><code class=\"language-php\">$b = &$a;<\/code><\/pre>\n<p>Qui <code>$b<\/code> prende il valore di <code>$a<\/code>, ma quel valore non viene copiato da <code>$a<\/code> a <code>$b<\/code>. In PHP possiamo assegnare un valore per riferimento, nel senso che due variabili possono puntare agli stessi dati, e ogni modifica ad una qualsiasi delle variabili influisce sui dati originali. Ecco <a href=\"http:\/\/php.net\/manual\/en\/language.operators.assignment.php#language.operators.assignment.reference\" target=\"_blank\" rel=\"noopener noreferrer\">un esempio tratto dal manuale PHP<\/a>:<\/p>\n<pre><code class=\"language-php\">&lt;?php\n$a = 3;\n$b = &$a; \/\/ $b is a reference to $a\n\nprint \"$a\\n\"; \/\/ prints 3\nprint \"$b\\n\"; \/\/ prints 3<\/code><\/pre>\n<p>Ora, cambiamo il valore di <code>$a<\/code>:<\/p>\n<pre><code class=\"language-php\">$a = 4; \/\/ change $a\n\nprint \"$a\\n\"; \/\/ prints 4\nprint \"$b\\n\"; \/\/ prints 4 as well, since $b is a reference to $a, which has been changed<\/code><\/pre>\n<h3>Cosa \u00c8 il Costrutto list() e Come Cambia con PHP 7.3<\/h3>\n<p>Il costrutto di linguaggio <a href=\"http:\/\/www.php.net\/list\" target=\"_blank\" rel=\"noopener noreferrer\">list()<\/a> pu\u00f2 essere usato per &#8220;assegnare variabili come se fossero in un array&#8221;, ma con <code>list()<\/code> non \u00e8 attualmente possibile assegnare per riferimento i valori delle variabili.<\/p>\n<p>PHP 7.3 dovrebbe cambiare questo stato di cose, permettendoci di assegnare variabili per riferimento anche con il costrutto <code>list()<\/code>, come mostrato nel seguente esempio:<\/p>\n<pre><code class=\"language-php\">$array = [1, 2];\nlist($a, &$b) = $array;<\/code><\/pre>\n<p>Che \u00e8 la stessa cosa di:<\/p>\n<pre><code class=\"language-php\">$array = [1, 2];\n$a = $array[0];\n$b =& $array[1];<\/code><\/pre>\n<p>Il vantaggio di questa proposta \u00e8 che ora potremmo assegnare pi\u00f9 variabili per riferimento, cosa che non \u00e8 consentita al momento. Altri esempi sono disponibili sulla <a href=\"https:\/\/wiki.php.net\/rfc\/list_reference_assignment\" target=\"_blank\" rel=\"noopener noreferrer\">RFC<\/a>. Questa proposta \u00e8 passata con 17 voti contro 7.<\/p>\n<h4>RFC PHP 7.3<\/h4>\n<ul>\n<li><a href=\"https:\/\/wiki.php.net\/rfc\/list_reference_assignment\" target=\"_blank\" rel=\"noopener noreferrer\">list() Reference Assignment<\/a><\/li>\n<\/ul>\n<h4>Altre Risorse<\/h4>\n<ul>\n<li>PHP Manual &#8211; <a href=\"http:\/\/php.net\/manual\/en\/function.list.php\" target=\"_blank\" rel=\"noopener noreferrer\">list()<\/a><\/li>\n<li>PHP Manual &#8211; <a href=\"http:\/\/php.net\/manual\/en\/language.references.php\" target=\"_blank\" rel=\"noopener noreferrer\">References Explained<\/a><\/li>\n<li>Assignment Operators &#8211; <a href=\"http:\/\/php.net\/manual\/en\/language.operators.assignment.php#language.operators.assignment.reference\" target=\"_blank\" rel=\"noopener noreferrer\">Assignment by Reference<\/a><\/li>\n<\/ul>\n<h2 id=\"is-countable\">La Funzione is_countable<\/h2>\n<p>Un&#8217;altra utile funzionalit\u00e0 in arrivo con PHP 7.3 \u00e8 la funzione <code>is_countable()<\/code>. Fino a PHP 7.2, ci viene dato un errore quando tentiamo di contare qualcosa che non \u00e8 numerabile con la funzione <a href=\"http:\/\/php.net\/manual\/en\/function.count.php\" target=\"_blank\" rel=\"noopener noreferrer\">count()<\/a>. Per questo motivo, al fine di evitare un warning, siamo costretti ad aggiungere il seguente codice:<\/p>\n<pre><code class=\"language-php\">if (is_array($foo) || $foo instanceof Countable) {\n    \/\/ $foo is countable\n}<\/code><\/pre>\n<p>Questa RFC propone la funzione <a href=\"https:\/\/wiki.php.net\/rfc\/is-countable\" target=\"_blank\" rel=\"noopener noreferrer\">is_countable()<\/a>, che restituisce <code>true<\/code> se la variabile data \u00e8 un array o una variabile numerabile, <code>false<\/code> in caso contrario. Quindi, il codice di sopra potrebbe essere modificato come segue:<\/p>\n<pre><code class=\"language-php\">if (is_countable($foo)) {\n    \/\/ $foo is countable\n}<\/code><\/pre>\n<p>Questa proposta \u00e8 passata con 25 voti a 0.<\/p>\n<h4>RFC PHP 7.3<\/h4>\n<ul>\n<li><a href=\"https:\/\/wiki.php.net\/rfc\/is-countable\" target=\"_blank\" rel=\"noopener noreferrer\">is_countable<\/a><\/li>\n<\/ul>\n<h4>Altre Risorse<\/h4>\n<ul>\n<li><a href=\"http:\/\/php.net\/manual\/en\/class.countable.php\" target=\"_blank\" rel=\"noopener noreferrer\">The Countable interface<\/a><\/li>\n<li><a href=\"http:\/\/php.net\/manual\/en\/function.count.php\" target=\"_blank\" rel=\"noopener noreferrer\">count<\/a><\/li>\n<\/ul>\n<h2 id=\"array-key-first-last\">array_key_first(), array_key_last()<\/h2>\n<p>Attualmente, possiamo recuperare la prima e l&#8217;ultima chiave di un array usando le funzioni <a href=\"http:\/\/php.net\/manual\/en\/function.reset.php\" target=\"_blank\" rel=\"noopener noreferrer\">reset()<\/a>, <a href=\"http:\/\/php.net\/manual\/en\/function.end.php\" target=\"_blank\" rel=\"noopener noreferrer\">end()<\/a> e <a href=\"http:\/\/php.net\/manual\/en\/function.key.php\" target=\"_blank\" rel=\"noopener noreferrer\">key()<\/a>. Sfortunatamente, con queste funzioni, non c&#8217;\u00e8 modo di recuperare il primo o l&#8217;ultimo indice di un array senza cambiarne lo stato interno. Altre opzioni in genere riducono la leggibilit\u00e0 e le prestazioni del codice.<\/p>\n<p>Questa proposta cambierebbe questo scenario aggiungendo due nuove funzioni al core di PHP:<\/p>\n<ul>\n<li><code>array_key_first()<\/code><\/li>\n<li><code>array_key_last()<\/code><\/li>\n<\/ul>\n<p>A partire da PHP 7.3, <code>array_key_first()<\/code> e <code>array_key_last()<\/code> consentono di recuperare la prima e l&#8217;ultima chiave di un dato array <strong>senza influenzare il puntatore interno dell&#8217;array<\/strong>. Queste nuove funzioni ci dovrebbero consentire di scrivere codice meno complesso e in alcuni casi di evitare errori. Si legga la <a href=\"https:\/\/wiki.php.net\/rfc\/array_key_first_last\" target=\"_blank\" rel=\"noopener noreferrer\">RFC<\/a> per ulteriori informazioni e diversi esempi.<\/p>\n<p>Le funzioni <code>array_key_first()<\/code> e <code>array_key_last()<\/code> sono stati approvate con 18 voti contro 14.<\/p>\n<p>Nota: l&#8217;RFC originale proponeva altre due funzioni, <code>array_value_first()<\/code> e <code>array_value_last()<\/code>, che sono state proposte in una votazione separata, ma non sono state approvate e non diventeranno parte del core di PHP.<\/p>\n<h4>RFC PHP 7.3<\/h4>\n<ul>\n<li><a href=\"https:\/\/wiki.php.net\/rfc\/array_key_first_last\" target=\"_blank\" rel=\"noopener noreferrer\">array_key_first(), array_key_last()<\/a><\/li>\n<\/ul>\n<h4>Altre Risorse<\/h4>\n<ul>\n<li><a href=\"http:\/\/php.net\/manual\/en\/function.array-key-first.php\" target=\"_blank\" rel=\"noopener noreferrer\">array_key_first<\/a><\/li>\n<li><a href=\"http:\/\/php.net\/manual\/en\/function.array-key-last.php\" target=\"_blank\" rel=\"noopener noreferrer\">array_key_last<\/a><\/li>\n<\/ul>\n<h2 id=\"argon2\">Miglioramenti all&#8217;Hash delle Password di Argon2<\/h2>\n<p>Argon2 \u00e8 un algoritmo di hash <a href=\"https:\/\/kinsta.com\/it\/blog\/php-7-2\/\" target=\"_blank\" rel=\"noopener noreferrer\">implementato in PHP 7.2<\/a> come alternativa all&#8217;algoritmo Bcrypt. PHP 7.2 ha introdotto la costante <code>PASSWORD_ARGON2I<\/code>, disponibile per essere utilizzata nelle funzioni <code>password_*<\/code>:<\/p>\n<pre><code class=\"language-php\">password_hash('password', PASSWORD_ARGON2I);<\/code><\/pre>\n<p>Dopo la sua prima implementazione, \u00e8 stata aggiunta una nuova variante di Argon2, quindi, al momento in cui scriviamo, Argon2 \u00e8 disponibile nelle seguenti tre varianti:<\/p>\n<ul>\n<li><strong>Argon2d<\/strong> massimizza la resistenza agli attacchi di cracking della GPU. \u00c8 pi\u00f9 veloce e utilizza l&#8217;accesso alla memoria in base ai dati.<\/li>\n<li><strong>Argon2i<\/strong> utilizza l&#8217;accesso alla memoria indipendente dai dati, che \u00e8 una cosa preferibile per l&#8217;hashing delle password. \u00c8 pi\u00f9 lento in quanto effettua pi\u00f9 passaggi sulla memoria per proteggere dagli attacchi di tradeoff.<\/li>\n<li><strong>Argon2id<\/strong> \u00e8 una versione ibrida che combina l&#8217;approccio di Argon2i per il primo passaggio sulla memoria e l&#8217;approccio Argon2d per i passaggi successivi.<\/li>\n<\/ul>\n<p>Argon2id \u00e8 consigliato su Internet, tranne quando ci sono buone ragioni per preferire specificamente un&#8217;altra variante.<\/p>\n<p>La nuova RFC propone l&#8217;implementazione di Argon2id nelle funzioni <a href=\"http:\/\/php.net\/manual\/en\/ref.password.php\" target=\"_blank\" rel=\"noopener noreferrer\">password_*<\/a> con la nuova costante <code>PASSWORD_ARGON2ID<\/code>:<\/p>\n<pre><code class=\"language-php\">password_hash('password', PASSWORD_ARGON2ID);<\/code><\/pre>\n<p>L&#8217;implementazione \u00e8 identica ad Argon2i e accetta gli stessi fattori di costo:<\/p>\n<ul>\n<li>Un <strong>memory cost<\/strong> che definisce il numero di KiB da consumare durante l&#8217;hashing (i valori predefiniti sono 1&lt;&lt;10, o 1024 KiB, o 1 MiB)<\/li>\n<li>Un <strong>time cost<\/strong> che definisce il numero di iterazioni dell&#8217;algoritmo di hashing (il valore predefinito \u00e8 2)<\/li>\n<li>Un <strong>fattore di parallelismo<\/strong>, che imposta il numero di thread paralleli che verranno utilizzati durante l&#8217;hashing (il valore predefinito \u00e8 2)<\/li>\n<\/ul>\n<p>Ecco un esempio di codice:<\/p>\n<pre><code class=\"language-php\">$options = ['memory_cost' =&gt; 1&lt;&lt;11, 'time_cost' =&gt; 4, 'threads' =&gt; 2];\npassword_hash('password', PASSWORD_ARGON2ID, $options);<\/code><\/pre>\n<p>Ulteriori informazioni ed esempi sono disponibili nella <a href=\"https:\/\/wiki.php.net\/rfc\/argon2_password_hash_enhancements\" target=\"_blank\" rel=\"noopener noreferrer\">RFC<\/a>.<\/p>\n<h4>RFC PHP 7.3<\/h4>\n<ul>\n<li><a href=\"https:\/\/wiki.php.net\/rfc\/argon2_password_hash_enhancements\" target=\"_blank\" rel=\"noopener noreferrer\">Argon2 Password Hash Enhancements<\/a><\/li>\n<\/ul>\n<h4>Altre Risorse<\/h4>\n<ul>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Argon2\" target=\"_blank\" rel=\"noopener noreferrer\">Argon2<\/a> (Wikipedia)<\/li>\n<li><a href=\"https:\/\/www.cryptolux.org\/images\/0\/0d\/Argon2.pdf\" target=\"_blank\" rel=\"noopener noreferrer\">Argon2: the memory-hard function for password hashing and other applications<\/a> (PDF)<\/li>\n<\/ul>\n<h2 id=\"deprecazioni\">Deprecazioni<\/h2>\n<p>Le seguenti funzioni\/funzionalit\u00e0 saranno deprecate con PHP 7.3 e rimosse non pi\u00f9 tardi di PHP 8.0.<\/p>\n<h3>Deprecazione e Rimozione di image2wbmp()<\/h3>\n<p>La funzione <code>image2wbmp()<\/code> genera o salva una versione <a href=\"https:\/\/en.wikipedia.org\/wiki\/Wireless_Application_Protocol_Bitmap_Format\" target=\"_blank\" rel=\"noopener noreferrer\">WBMP<\/a> di una determinata immagine. Questa funzione richiede tre argomenti: una risorsa immagine, un nome file (il percorso del file salvato) e un colore di primo piano. A partire da PHP 5.0, questa funzione \u00e8 identica a <a href=\"http:\/\/php.net\/manual\/en\/function.imagewbmp.php\" target=\"_blank\" rel=\"noopener noreferrer\">imagewbmp()<\/a>, quindi questa <a href=\"https:\/\/wiki.php.net\/rfc\/image2wbmp\" target=\"_blank\" rel=\"noopener noreferrer\">RFC<\/a> propone di deprecarla e rimuoverla. A partire da PHP 7.3, ogni chiamata a <code>image2wbmp()<\/code> emette un avviso di deprecazione. Dopo la rimozione, ogni chiamata genera un errore fatale.<\/p>\n<h4>RFC PHP 7.3<\/h4>\n<ul>\n<li><a href=\"https:\/\/wiki.php.net\/rfc\/image2wbmp\" target=\"_blank\" rel=\"noopener noreferrer\">Deprecate and Remove image2wbmp()<\/a><\/li>\n<\/ul>\n<h3>Deprecazione e Rimozione delle Costanti Case-Insensitive<\/h3>\n<p>PHP attualmente supporta sia costanti case-sensitive che case-insensitive. Comunque, le costanti <strong>case-insensitive<\/strong> sono supportate ma considerate soggette a incoerenze nelle funzionalit\u00e0 e complesse nell&#8217;utilizzo.<br \/>\nQuesta proposta inizia con la seguente premessa:<\/p>\n<ul>\n<li>Le <a href=\"http:\/\/php.net\/manual\/en\/language.oop5.constants.php\" target=\"_blank\" rel=\"noopener noreferrer\">costanti di classe<\/a> sono sempre case-sensitive<\/li>\n<li>Le costanti globali dichiarate con <code>const<\/code> sono sempre case-sensitive<\/li>\n<li>Le costanti definite con <code>define()<\/code> sono case-sensitive di default<\/li>\n<\/ul>\n<p>Inoltre, il <a href=\"http:\/\/php.net\/manual\/en\/language.constants.php\" target=\"_blank\" rel=\"noopener noreferrer\">PHP Language Reference<\/a> afferma esplicitamente:<\/p>\n<blockquote><p>Una costante \u00e8 case-sensitive per impostazione predefinita. Per convenzione, gli identificatori di costanti sono sempre in maiuscolo.<\/p><\/blockquote>\n<p>Detto questo, questo RFC propone le seguenti modifiche:<\/p>\n<ul>\n<li>Deprecazione delle chiamate a <code>define()<\/code> con il terzo parametro impostato a <code>true<\/code> &#8211; PHP 7.3<\/li>\n<li>Deprecazione dell&#8217;accesso a costanti case-insensitive con lettere diverse dalla dichiarazione (con l&#8217;eccezione di <code>true<\/code>, <code>false<\/code> e <code>null<\/code>) &#8211; PHP 7.3<\/li>\n<li>Rimozione della possibilit\u00e0 di dichiarare costanti case-insensitive &#8211; PHP 8.0<\/li>\n<li>Conversione di <code>true<\/code>, <code>false<\/code> e <code>null<\/code> da costanti a lettere speciali in parole chiave riservate &#8211; PHP 8.0<\/li>\n<\/ul>\n<h4>RFC PHP 7.3<\/h4>\n<p><a href=\"https:\/\/wiki.php.net\/rfc\/case_insensitive_constant_deprecation\" target=\"_blank\" rel=\"noopener noreferrer\">Deprecate and Remove Case-Insensitive Constants<\/a>.<\/p>\n<h3>Ulteriori Deprecazioni per PHP 7.3<\/h3>\n<p>Ecco una rapida lista di funzionalit\u00e0 deprecate in PHP 7.3. Non \u00e8 una lista esaustiva, sono solo le proposte di deprecazione che considero personalmente pi\u00f9 rilevanti. Per un elenco completo, si veda <a href=\"https:\/\/wiki.php.net\/rfc\/deprecations_php_7_3\" target=\"_blank\" rel=\"noopener noreferrer\">Deprecations for PHP 7.3<\/a>.<\/p>\n<p><strong>Alias \u200b\u200bdella funzione mbstring non documentati<\/strong>: esiste un numero di alias della funzione <a href=\"http:\/\/php.net\/manual\/en\/book.mbstring.php\" target=\"_blank\" rel=\"noopener noreferrer\">mbstring<\/a> non documentati che sono duplicazioni di funzioni equivalenti che utilizzano il prefisso <code>mb_<\/code>. Ad esempio, <code>mbereg<\/code> \u00e8 un alias di <code>mb_ereg<\/code>.<br \/>\nTutte queste funzioni sono contrassegnate come deprecate e viene generata una notifica di deprecazione quando vengono rilevate durante la compilazione.<\/p>\n<p><strong>Funzioni di ricerca di stringhe con needle intero<\/strong>: queste funzioni di solito funzionano su needle stringa. Se viene dato un needle non stringa, questo viene convertito in un numero intero e applicato come il valore ordinale di un carattere (per un approfondimento si legga il <a href=\"http:\/\/php.net\/manual\/en\/function.strpos.php\" target=\"_blank\" rel=\"noopener noreferrer\">manuale PHP<\/a>). Ecco un <a href=\"https:\/\/wiki.php.net\/rfc\/deprecations_php_7_3#string_search_functions_with_integer_needle\" target=\"_blank\" rel=\"noopener noreferrer\">esempio tratto dalla RFC<\/a>:<\/p>\n<pre><code class=\"language-php\">$str = \"There are 10 apples\";\nvar_dump(strpos($str, \"10\")); \/\/ int(10)\nvar_dump(strpos($str, 10));   \/\/ bool(false)<\/code><\/pre>\n<p>Questo \u00e8 considerato complicato e causa di problemi imprevedibili perch\u00e9 il tipo pu\u00f2 cambiare con l&#8217;origine dei dati dell&#8217;utente. Per questo motivo, l&#8217;RFC propone l&#8217;emissione di un avviso di deprecazione se un needle non stringa viene passato ad una delle seguenti funzioni:<\/p>\n<ul>\n<li><code>strpos<\/code><\/li>\n<li><code>strrpos<\/code><\/li>\n<li><code>stripos<\/code><\/li>\n<li><code>strripos<\/code><\/li>\n<li><code>strstr<\/code><\/li>\n<li><code>strchr<\/code><\/li>\n<li><code>strrchr<\/code><\/li>\n<li><code>stristr<\/code><\/li>\n<\/ul>\n<p>In PHP 8.0, l&#8217;avviso di deprecazione dovrebbe essere rimosso e i needle dovrebbero essere convertiti automaticamente in stringhe. <\/p>\n<p><strong>Funzione <code>fgetss()<\/code> e filtro di flusso <code>string.strip_tags<\/code><\/strong>: <code>fgetss()<\/code> e <code>string.strip_tags<\/code> eliminano i tag da un flusso durante la lettura del flusso stesso. Sia la funzione che il filtro espongono la funzionalit\u00e0 di <a href=\"http:\/\/php.net\/manual\/en\/function.strip-tags.php\" target=\"_blank\" rel=\"noopener noreferrer\">strip_tags()<\/a> rendendo pi\u00f9 complessa l&#8217;implementazione di questa funzione, in quanto \u00e8 richiesta una macchina a stati di flusso. Inoltre, la RFC sottolinea <a href=\"https:\/\/wiki.php.net\/rfc\/deprecations_php_7_3#fgetss_function_and_stringstrip_tags_filter\" target=\"_blank\" rel=\"noopener noreferrer\">un altro inconveniente<\/a> di queste funzioni:<\/p>\n<blockquote><p>D&#8217;altra parte, queste funzioni sembrano essere di scarsissima utilit\u00e0. La stessa funzione <code>strip_tags()<\/code>, a causa delle sue limitazioni e dei bug noti, ha gi\u00e0 pochissime applicazioni legittime. Non \u00e8 necessario fornire supporto nativo per l&#8217;applicazione dello streaming.<\/p><\/blockquote>\n<p>Quindi l&#8217;RFC propone di contrassegnare <code>fgetss()<\/code>, <code>gzgetss()<\/code> e <code>SplFileObject::fgetss()<\/code> come deprecati.<\/p>\n<h2>Che Cosa Significa PHP 7.3 per gli Utenti di WordPress?<\/h2>\n<p>Secondo la pagina ufficiale delle <a href=\"https:\/\/wordpress.org\/about\/stats\/\" target=\"_blank\" rel=\"noopener noreferrer\">statistiche di WordPress<\/a>, nel momento in cui si scrive, solo il 32,9% degli utenti di WordPress \u00e8 passato a PHP 7 o versione successiva. Solo il 4% utilizza <a href=\"https:\/\/kinsta.com\/it\/blog\/php-7-2\/\" target=\"_blank\" rel=\"noopener noreferrer\">PHP 7.2<\/a>. \u00c8 evidente che una grande maggioranza di utenti, oltre il 38%, gira ancora su PHP 5.6. Ci\u00f2 che \u00e8 ancora pi\u00f9 spaventoso \u00e8 che oltre il 28,5% degli utenti utilizza versioni PHP non supportate. A partire da dicembre 2016, WordPress.org ha effettivamente elevato le <a href=\"https:\/\/wordpress.org\/about\/requirements\/\" target=\"_blank\" rel=\"noopener noreferrer\">raccomandazioni ufficiali<\/a> per gli utenti da PHP 5.6 a PHP 7 o versioni successive.<\/p>\n<figure style=\"width: 1404px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2018\/08\/versioni-php-wordpress.png\" alt=\"Versioni PHP di WordPress\" width=\"1404\" height=\"1054\"><figcaption class=\"wp-caption-text\">Versioni PHP di WordPress<\/figcaption><\/figure>\n<h3>Performance di PHP 7<\/h3>\n<p>I numeri sopra riportati sono particolarmente scoraggianti dal punto di vista delle prestazioni, poich\u00e9 PHP 7 ha dimostrato di essere significativamente pi\u00f9 veloce. Ecco alcune statistiche:<\/p>\n<ul>\n<li><a href=\"http:\/\/talks.php.net\/fluent15#\/wpbench\" target=\"_blank\" rel=\"noopener noreferrer\">I benchmark<\/a> ufficiali di PHP\u00a0mostrano che PHP 7 consente al sistema di eseguire il doppio delle richieste al secondo rispetto a PHP 5.6, a quasi met\u00e0 della latenza.<\/li>\n<li>Anche Christian Vigh ha pubblicato un\u00a0<a href=\"https:\/\/www.phpclasses.org\/blog\/post\/493-php-performance-evolution.html\" target=\"_blank\" rel=\"noopener noreferrer\">confronto delle prestazioni di PHP<\/a>\u00a0in cui ha scoperto che PHP 5.2 era il 400% pi\u00f9 lento di PHP 7.<\/li>\n<\/ul>\n<p>Abbiamo eseguito i nostri <a href=\"https:\/\/kinsta.com\/it\/blog\/benchmark-php\/\" target=\"_blank\" rel=\"noopener noreferrer\">benchmark delle prestazioni<\/a>. Analogamente ai benchmark riportati sopra, abbiamo visto che WordPress 5.0 su PHP 7.3 poteva eseguire quasi tre volte il numero di transazioni (richieste) al secondo rispetto a PHP 5.6.<\/p>\n<figure id=\"attachment_23595\" aria-describedby=\"caption-attachment-23595\" style=\"width: 940px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-23595\" src=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2018\/08\/benchmark-php-wordpress-5.0-v2.png\" alt=\"Benchmark PHP WordPress\" width=\"940\" height=\"788\" srcset=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2018\/08\/benchmark-php-wordpress-5.0-v2.png 940w, https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2018\/08\/benchmark-php-wordpress-5.0-v2-300x251.png 300w, https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2018\/08\/benchmark-php-wordpress-5.0-v2-768x644.png 768w, https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2018\/08\/benchmark-php-wordpress-5.0-v2-610x511.png 610w\" sizes=\"auto, (max-width: 940px) 100vw, 940px\" \/><figcaption id=\"caption-attachment-23595\" class=\"wp-caption-text\">Benchmark PHP WordPress<\/figcaption><\/figure>\n<ul>\n<li>Risultati benchmark WordPress 5.0 PHP 5.6: 91,64 ric\/sec<\/li>\n<li>Risultati benchmark WordPress 5.0 PHP 7.0: 206,71 ric\/sec<\/li>\n<li>Risultati benchmark WordPress 5.0 PHP 7.1: 210,98 ric\/sec<\/li>\n<li>Risultati benchmark WordPress 5.0 PHP 7.2: 229,18 ric\/sec<\/li>\n<li>Risultati benchmark WordPress 5.0 <strong>PHP 7.3 : 253.20 ric\/sec<\/strong> <strong>\ud83c\udfc6<\/strong><\/li>\n<\/ul>\n<p>\u00c8 anche interessante noyare che WordPress 4.9.8 su PHP 7.3 \u00e8 stato leggermente pi\u00f9 veloce di WordPress 5.0.<\/p>\n<figure id=\"attachment_23596\" aria-describedby=\"caption-attachment-23596\" style=\"width: 940px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-23596\" src=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2018\/08\/benchmark-php-wordpress-4.9.8.png\" alt=\"Benchmark PHP WordPress 4.9.8\" width=\"940\" height=\"788\" srcset=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2018\/08\/benchmark-php-wordpress-4.9.8.png 940w, https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2018\/08\/benchmark-php-wordpress-4.9.8-300x251.png 300w, https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2018\/08\/benchmark-php-wordpress-4.9.8-768x644.png 768w, https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2018\/08\/benchmark-php-wordpress-4.9.8-610x511.png 610w\" sizes=\"auto, (max-width: 940px) 100vw, 940px\" \/><figcaption id=\"caption-attachment-23596\" class=\"wp-caption-text\">Benchmark PHP WordPress 4.9.8<\/figcaption><\/figure>\n<ul>\n<li>Risultati benchmark WordPress 4.9.8 PHP 5.6: 97,59 ric\/sec<\/li>\n<li>Risultati benchmark WordPress 4.9.8 PHP 7.0: 221,42 ric\/sec<\/li>\n<li>Risultati benchmark WordPress 4.9.8 PHP 7.1: 233,78 ric\/sec<\/li>\n<li>Risultati benchmark WordPress 4.9.8 PHP 7.2: 250,36 ric\/sec<\/li>\n<li>Risultati benchmark WordPress 4.9.8 <strong>PHP 7.3: 276,31 ric\/sec \ud83c\udfc6<\/strong><\/li>\n<\/ul>\n<p>Molti sono lenti ad aggiornare semplicemente a causa del tempo necessario a testare tutti i loro plugin e temi di terze parti per assicurarsi che funzionino correttamente. Ma molte volte si tratta semplicemente di non averlo ancora fatto.<\/p>\n<h3>Verificare la Propria Versione di PHP<\/h3>\n<p>Non siete sicuri di quale versione di PHP state usando? Uno dei modi pi\u00f9 semplici per fare una verifica \u00e8 utilizzare uno strumento come <a href=\"https:\/\/kinsta.com\/it\/blog\/test-velocita-pingdom\/\" target=\"_blank\" rel=\"noopener noreferrer\">Pingdom<\/a> o Google Chrome Devtools. La prima intestazione della richiesta HTTP mostra in genere la versione.<\/p>\n<figure style=\"width: 1679px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2017\/10\/controllo-versione-php.png\" alt=\"Controllo versione di PHP\" width=\"1679\" height=\"644\"><figcaption class=\"wp-caption-text\">Controllo versione di PHP<\/figcaption><\/figure>\n<p>Questo dipende dal fatto che l&#8217;host non modifica il valore dell&#8217;intestazione <code>X-Powered-By<\/code>. Se lo fanno, potreste non vedere la vostra versione di PHP. In questo caso potreste installare un plugin gratuito come <a href=\"https:\/\/wordpress.org\/plugins\/version-info\/\" target=\"_blank\" rel=\"noopener noreferrer\">Version Info<\/a>, che vi mostrer\u00e0 alcune informazioni di base sul server nel footer del vostro pannello di amministrazione di WordPress.<\/p>\n<figure id=\"attachment_23593\" aria-describedby=\"caption-attachment-23593\" style=\"width: 1942px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-23593\" src=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2018\/08\/verificare-versione-php-in-wordpress.png\" alt=\"Verifica della versione di PHP in WordPress\" width=\"1942\" height=\"1038\" srcset=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2018\/08\/verificare-versione-php-in-wordpress.png 1942w, https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2018\/08\/verificare-versione-php-in-wordpress-300x160.png 300w, https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2018\/08\/verificare-versione-php-in-wordpress-768x410.png 768w, https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2018\/08\/verificare-versione-php-in-wordpress-1024x547.png 1024w, https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2018\/08\/verificare-versione-php-in-wordpress-610x326.png 610w\" sizes=\"auto, (max-width: 1942px) 100vw, 1942px\" \/><figcaption id=\"caption-attachment-23593\" class=\"wp-caption-text\">Verifica della versione di PHP in WordPress<\/figcaption><\/figure>\n<p>In alternativa, potete anche <a href=\"https:\/\/kinsta.com\/it\/blog\/versioni-php\/\" target=\"_blank\" rel=\"noopener noreferrer\">caricare un file via FTP<\/a> per vedere quale sia la versione di PHP, o contattare il nostro servizio di supporto.<\/p>\n<h3>Aggiornare a PHP 7.3<\/h3>\n<p>La versione definitiva di PHP 7.3 \u00e8 qu\u00ec, \u00e8 potete cominciare a provarla da subito. Potreste <a href=\"https:\/\/kinsta.com\/it\/blog\/installare-wordpress-in-locale\/\" target=\"_blank\" rel=\"noopener noreferrer\">testare il vostro sito WordPress localmente<\/a> o controllare i vostri script in un ambiente come <a href=\"https:\/\/docs.docker.com\/get-started\/\" target=\"_blank\" rel=\"noopener noreferrer\">Docker<\/a>, che vi permette di testare diverse versioni di PHP <a href=\"https:\/\/carlodaniele.it\/wordpress-su-docker\/\" target=\"_blank\" rel=\"noopener noreferrer\">dalla riga di comando<\/a>.<\/p>\n<p>Oppure potete utilizzare un ambiente di staging, che sar\u00e0 pi\u00f9 simile a un sito di produzione live. Potrete creare facilmente un <a href=\"https:\/\/kinsta.com\/it\/docs\/hosting-wordpress\/ambienti-di-staging\/\" target=\"_blank\" rel=\"noopener noreferrer\">ambiente di staging<\/a> con un solo clic nel cruscotto di MyKinsta.<\/p>\n<figure id=\"attachment_22554\" aria-describedby=\"caption-attachment-22554\" style=\"width: 1670px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-22554\" src=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2018\/08\/ambiente-di-staging-wordpress.png\" alt=\"Ambiente di staging WordPress\" width=\"1670\" height=\"735\" srcset=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2018\/08\/ambiente-di-staging-wordpress.png 1670w, https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2018\/08\/ambiente-di-staging-wordpress-300x132.png 300w, https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2018\/08\/ambiente-di-staging-wordpress-768x338.png 768w, https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2018\/08\/ambiente-di-staging-wordpress-1024x451.png 1024w, https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2018\/08\/ambiente-di-staging-wordpress-610x268.png 610w\" sizes=\"auto, (max-width: 1670px) 100vw, 1670px\" \/><figcaption id=\"caption-attachment-22554\" class=\"wp-caption-text\">Ambiente di staging WordPress<\/figcaption><\/figure>\n<p>Consigliamo sempre di testare attentamente prima di utilizzare una nuova versione nell&#8217;ambiente di produzione. Per farlo, cambiate semplicemente il motore PHP del sito di staging alla voce &#8220;Strumenti&#8221; e comunciate subito a testare la compatibilit\u00e0 dei vostri temi e plugin di terze parti.<\/p>\n<figure id=\"attachment_23597\" aria-describedby=\"caption-attachment-23597\" style=\"width: 1546px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-23597\" src=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2018\/08\/passare-a-php-7.3.png\" alt=\"Passare a PHP 7.3\" width=\"1546\" height=\"878\" srcset=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2018\/08\/passare-a-php-7.3.png 1546w, https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2018\/08\/passare-a-php-7.3-300x170.png 300w, https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2018\/08\/passare-a-php-7.3-768x436.png 768w, https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2018\/08\/passare-a-php-7.3-1024x582.png 1024w, https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2018\/08\/passare-a-php-7.3-610x346.png 610w\" sizes=\"auto, (max-width: 1546px) 100vw, 1546px\" \/><figcaption id=\"caption-attachment-23597\" class=\"wp-caption-text\">Passare a PHP 7.3<\/figcaption><\/figure>\n<p>Una volta che avrete verificato che tutto funziona correttamente, vi sar\u00e0 possibile spostare il sito di produzione su PHP 7.3 o, se avete fatto delle modifiche, <a href=\"https:\/\/kinsta.com\/it\/docs\/hosting-wordpress\/ambienti-di-staging\/\" target=\"_blank\" rel=\"noopener noreferrer\">passare il sito di staging in live<\/a>.<\/p>\n<h2>Riepilogo<\/h2>\n<p>L&#8217;ultima versione di PHP \u00e8 qui. Ci porta regali come heredocs e nowdocs flessibili, virgole finali nelle chiamate di funzione, assegnazione per riferimento nella funzione <code>list()<\/code> e altro ancora. In questo post, abbiamo fornito una panoramica dei miglioramenti e delle modifiche che preferiamo, ma vorremmo anche sapere quali sono quelli che preferite voi e in quali modi ne trarrete vantaggio. Fatecelo sapere nei commenti qui sotto. E non dimenticate che il <a href=\"https:\/\/kinsta.com\/it\/blog\/php-e-morto\/\">PHP non \u00e8 morto<\/a>!<\/p>\n\n<p>Puoi trovare l&#8217;elenco completo delle proposte di PHP 7.3 nella pagina <a href=\"https:\/\/wiki.php.net\/rfc#php_73\" target=\"_blank\" rel=\"noopener noreferrer\">Requests For Comments<\/a> e nelle <a href=\"https:\/\/github.com\/php\/php-src\/blob\/php-7.3.0beta1\/UPGRADING\" target=\"_blank\" rel=\"noopener noreferrer\">PHP 7.3 Upgrade Notes<\/a> di GitHub.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dal 6 dicembre 2018, PHP 7.3, la pi\u00f9 recente versione di PHP \u00e8 qui! Questa versione porta con s\u00e9 nuove utili funzionalit\u00e0, deprecazioni, un buon numero &#8230;<\/p>\n","protected":false},"author":36,"featured_media":21893,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[41,32],"topic":[26188],"class_list":["post-21851","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-php","tag-sviluppo-web","topic-aggiornamenti-php"],"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>Le Novit\u00e0 di PHP 7.3 (RC Ora Disponibile su Kinsta)<\/title>\n<meta name=\"description\" content=\"PHP 7.3 bussa alle nostre porte con nuove funzionalit\u00e0, deprecazioni e correzioni di bug. Ecco una panoramica approfondita delle novit\u00e0 di PHP 7.3!\" \/>\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\/it\/blog\/php-7-3\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Le Novit\u00e0 di PHP 7.3 (Ora Disponibile su Kinsta)\" \/>\n<meta property=\"og:description\" content=\"PHP 7.3 bussa alle nostre porte con nuove funzionalit\u00e0, deprecazioni e correzioni di bug. Ecco una panoramica approfondita delle novit\u00e0 di PHP 7.3!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/it\/blog\/php-7-3\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstaitalia\/\" \/>\n<meta property=\"article:published_time\" content=\"2018-08-29T16:30:59+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-02-01T14:10:50+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2018\/08\/php-7.3.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"730\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Carlo Daniele\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"PHP 7.3 bussa alle nostre porte con nuove funzionalit\u00e0, deprecazioni e correzioni di bug. Ecco una panoramica approfondita delle novit\u00e0 di PHP 7.3!\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2018\/08\/php-7.3.png\" \/>\n<meta name=\"twitter:creator\" content=\"@carlodaniele\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_IT\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Carlo Daniele\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"19 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/php-7-3\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/php-7-3\/\"},\"author\":{\"name\":\"Carlo Daniele\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63\"},\"headline\":\"Le Novit\u00e0 di PHP 7.3 (Ora Disponibile su Kinsta)\",\"datePublished\":\"2018-08-29T16:30:59+00:00\",\"dateModified\":\"2023-02-01T14:10:50+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/php-7-3\/\"},\"wordCount\":3528,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/it\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/php-7-3\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2018\/08\/php-7.3.png\",\"keywords\":[\"php\",\"sviluppo web\"],\"articleSection\":[\"Sviluppo WordPress\"],\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/it\/blog\/php-7-3\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/php-7-3\/\",\"url\":\"https:\/\/kinsta.com\/it\/blog\/php-7-3\/\",\"name\":\"Le Novit\u00e0 di PHP 7.3 (RC Ora Disponibile su Kinsta)\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/it\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/php-7-3\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/php-7-3\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2018\/08\/php-7.3.png\",\"datePublished\":\"2018-08-29T16:30:59+00:00\",\"dateModified\":\"2023-02-01T14:10:50+00:00\",\"description\":\"PHP 7.3 bussa alle nostre porte con nuove funzionalit\u00e0, deprecazioni e correzioni di bug. Ecco una panoramica approfondita delle novit\u00e0 di PHP 7.3!\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/php-7-3\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/it\/blog\/php-7-3\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/php-7-3\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2018\/08\/php-7.3.png\",\"contentUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2018\/08\/php-7.3.png\",\"width\":1460,\"height\":730,\"caption\":\"PHP 7.3\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/php-7-3\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/it\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Aggiornamenti PHP\",\"item\":\"https:\/\/kinsta.com\/it\/argomenti\/aggiornamenti-php\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Le Novit\u00e0 di PHP 7.3 (Ora Disponibile su Kinsta)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/it\/#website\",\"url\":\"https:\/\/kinsta.com\/it\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Soluzioni di hosting premium, veloci e sicure\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/it\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/it\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/it\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/it\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstaitalia\/\",\"https:\/\/x.com\/Kinsta_IT\",\"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\/it\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63\",\"name\":\"Carlo Daniele\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/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\/it\/blog\/author\/carlodaniele\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Le Novit\u00e0 di PHP 7.3 (RC Ora Disponibile su Kinsta)","description":"PHP 7.3 bussa alle nostre porte con nuove funzionalit\u00e0, deprecazioni e correzioni di bug. Ecco una panoramica approfondita delle novit\u00e0 di PHP 7.3!","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\/it\/blog\/php-7-3\/","og_locale":"it_IT","og_type":"article","og_title":"Le Novit\u00e0 di PHP 7.3 (Ora Disponibile su Kinsta)","og_description":"PHP 7.3 bussa alle nostre porte con nuove funzionalit\u00e0, deprecazioni e correzioni di bug. Ecco una panoramica approfondita delle novit\u00e0 di PHP 7.3!","og_url":"https:\/\/kinsta.com\/it\/blog\/php-7-3\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstaitalia\/","article_published_time":"2018-08-29T16:30:59+00:00","article_modified_time":"2023-02-01T14:10:50+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2018\/08\/php-7.3.png","type":"image\/png"}],"author":"Carlo Daniele","twitter_card":"summary_large_image","twitter_description":"PHP 7.3 bussa alle nostre porte con nuove funzionalit\u00e0, deprecazioni e correzioni di bug. Ecco una panoramica approfondita delle novit\u00e0 di PHP 7.3!","twitter_image":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2018\/08\/php-7.3.png","twitter_creator":"@carlodaniele","twitter_site":"@Kinsta_IT","twitter_misc":{"Scritto da":"Carlo Daniele","Tempo di lettura stimato":"19 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/it\/blog\/php-7-3\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/it\/blog\/php-7-3\/"},"author":{"name":"Carlo Daniele","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63"},"headline":"Le Novit\u00e0 di PHP 7.3 (Ora Disponibile su Kinsta)","datePublished":"2018-08-29T16:30:59+00:00","dateModified":"2023-02-01T14:10:50+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/it\/blog\/php-7-3\/"},"wordCount":3528,"commentCount":1,"publisher":{"@id":"https:\/\/kinsta.com\/it\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/it\/blog\/php-7-3\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2018\/08\/php-7.3.png","keywords":["php","sviluppo web"],"articleSection":["Sviluppo WordPress"],"inLanguage":"it-IT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/it\/blog\/php-7-3\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/it\/blog\/php-7-3\/","url":"https:\/\/kinsta.com\/it\/blog\/php-7-3\/","name":"Le Novit\u00e0 di PHP 7.3 (RC Ora Disponibile su Kinsta)","isPartOf":{"@id":"https:\/\/kinsta.com\/it\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/it\/blog\/php-7-3\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/it\/blog\/php-7-3\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2018\/08\/php-7.3.png","datePublished":"2018-08-29T16:30:59+00:00","dateModified":"2023-02-01T14:10:50+00:00","description":"PHP 7.3 bussa alle nostre porte con nuove funzionalit\u00e0, deprecazioni e correzioni di bug. Ecco una panoramica approfondita delle novit\u00e0 di PHP 7.3!","breadcrumb":{"@id":"https:\/\/kinsta.com\/it\/blog\/php-7-3\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/it\/blog\/php-7-3\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/blog\/php-7-3\/#primaryimage","url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2018\/08\/php-7.3.png","contentUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2018\/08\/php-7.3.png","width":1460,"height":730,"caption":"PHP 7.3"},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/it\/blog\/php-7-3\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/it\/"},{"@type":"ListItem","position":2,"name":"Aggiornamenti PHP","item":"https:\/\/kinsta.com\/it\/argomenti\/aggiornamenti-php\/"},{"@type":"ListItem","position":3,"name":"Le Novit\u00e0 di PHP 7.3 (Ora Disponibile su Kinsta)"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/it\/#website","url":"https:\/\/kinsta.com\/it\/","name":"Kinsta\u00ae","description":"Soluzioni di hosting premium, veloci e sicure","publisher":{"@id":"https:\/\/kinsta.com\/it\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/it\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/it\/","logo":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstaitalia\/","https:\/\/x.com\/Kinsta_IT","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\/it\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63","name":"Carlo Daniele","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/#\/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\/it\/blog\/author\/carlodaniele\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/21851","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/users\/36"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/comments?post=21851"}],"version-history":[{"count":15,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/21851\/revisions"}],"predecessor-version":[{"id":63181,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/21851\/revisions\/63181"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/21851\/translations\/en"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/21851\/translations\/es"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/21851\/translations\/it"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/21851\/translations\/fr"},{"embeddable":true,"hreflang":"sv","title":"Swedish","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/21851\/translations\/se"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/21851\/translations\/pt"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/21851\/translations\/nl"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/21851\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/21851\/translations\/jp"},{"embeddable":true,"hreflang":"da","title":"Danish","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/21851\/translations\/dk"},{"href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/21851\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/media\/21893"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/media?parent=21851"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/tags?post=21851"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/topic?post=21851"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}