{"id":82710,"date":"2025-12-05T09:32:07","date_gmt":"2025-12-05T08:32:07","guid":{"rendered":"https:\/\/kinsta.com\/it\/?p=82710&#038;preview=true&#038;preview_id=82710"},"modified":"2025-12-08T16:00:49","modified_gmt":"2025-12-08T15:00:49","slug":"php-8-5","status":"publish","type":"post","link":"https:\/\/kinsta.com\/it\/blog\/php-8-5\/","title":{"rendered":"PHP 8.5: ecco le novit\u00e0 dell&#8217;ultima versione"},"content":{"rendered":"<p>Il gruppo PHP ha rilasciato la versione 8.5 del linguaggio di scripting open source che alimenta gran parte del web, compresi i siti che utilizzano il CMS WordPress.<\/p>\n<p>Il rilascio di PHP 8.5 a novembre ha segnato il secondo anno dell&#8217;impegno della community PHP a fornire aggiornamenti importanti con cadenza annuale, seguiti da <a href=\"https:\/\/www.php.net\/supported-versions.php\">due anni interi di supporto attivo<\/a> per ogni release.<\/p>\n<p>Anche se la versione 8.5 \u00e8 nuova di zecca, l&#8217;abbiamo gi\u00e0 analizzata nel nostro <a href=\"https:\/\/kinsta.com\/it\/blog\/benchmark-php\/\">benchmarking annuale di PHP<\/a> dietro a una serie di piattaforme e framework CMS popolari.<\/p>\n<p>Se hai intenzione di <a href=\"https:\/\/www.php.net\/manual\/en\/migration85.php\">migrare le applicazioni PHP alla versione 8.5<\/a>, \u00e8 bene che tu sappia cosa \u00e8 cambiato in quest&#8217;ultima release. Tra le novit\u00e0 ci sono nuove funzionalit\u00e0 che potresti sfruttare per migliorare il tuo codice e vecchie funzionalit\u00e0 che gli sviluppatori di PHP si stanno preparando a rimuovere.<\/p>\n<p>Ecco quali sono i punti salienti della nuova versione:<\/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>Nuove funzionalit\u00e0 e miglioramenti in PHP 8.5<\/h2>\n<p>Iniziamo con le nuove aggiunte al codice base di PHP. Queste modifiche di solito iniziano come <a href=\"https:\/\/wiki.php.net\/rfc\">richieste di commenti (Requests for Comments, RFC)<\/a> che alla fine potrebbero essere approvate e assegnate a una futura release di PHP.<\/p>\n<p>Le nuove funzionalit\u00e0 descritte di seguito sono quelle che stanno catturando la maggior parte dell&#8217;attenzione intorno a PHP 8.5.<\/p>\n<div><\/div><kinsta-auto-toc list-style=\"disc\" selector=\"h3\" count-number=\"5\" sub-toc=\"true\"><\/kinsta-auto-toc>\n<h3>Chiamate di funzione a catena con l&#8217;operatore pipe<\/h3>\n<p>Un nuovo operatore pipe (<code class=\"language-php\">|&gt;<\/code>) concatena le chiamate di funzione in un modo che risulter\u00e0 vagamente familiare ai programmatori JavaScript. La pipe opera da sinistra a destra, passando un singolo valore lungo la catena a ogni passo.<\/p>\n<p>Con le versioni precedenti di PHP, i programmatori potevano realizzare un&#8217;operazione simile annidando le funzioni o eseguendo una serie di chiamate di funzione su ogni valore restituito.<\/p>\n<p>Ecco un semplice esempio che utilizza il nuovo operatore pipe:<\/p>\n<pre><code class=\"language-php\">$text = ' New-in-php-8.4 ';\n\n$result = $text\n    |&gt; trim(...)\n    |&gt; (fn($str) =&gt; str_replace('4', '5', $str))\n    |&gt; (fn($str) =&gt; str_replace('-', ' ', $str))\n    |&gt; strtoupper(...);\n\nvar_dump($result);\n\/\/ string(14) \"NEW IN PHP 8.5\"<\/code><\/pre>\n<p>(Nota che stiamo utilizzando la <a href=\"https:\/\/kinsta.com\/it\/blog\/php-8-1\/#firstclass-callable-syntax\">sintassi di prima classe<\/a> <code class=\"language-php\">(...)<\/code> introdotta in PHP 8.1 con le chiamate di funzione <code class=\"language-php\">trim()<\/code> e <code class=\"language-php\">strtoupper()<\/code> )<\/p>\n<p>La catena di pipe qui sopra potrebbe essere scritta su una sola riga, ma la leggibilit\u00e0 dovrebbe essere uno dei vantaggi di questo nuovo operatore.<\/p>\n<p>Quanto sopra equivale ad annidare queste operazioni (in ordine inverso) in questo modo:<\/p>\n<pre><code class=\"language-php\">$text = \" New-in-php-8.4 \";\n\n$result = strtoupper(\n    str_replace(\u2018-, ' ',\n        str_replace('4', '5', \n            trim($text)\n         )\n     )\n);<\/code><\/pre>\n<p>In alternativa, un developer avrebbe potuto completare l&#8217;operazione nelle versioni precedenti di PHP in questo modo:<\/p>\n<pre><code class=\"language-php\">$text = \" New-in-php-8.4 \";\n\n$result = trim($text);\n$result = str_replace('4', '5', $result);\n$result = str_replace(\u2018-, ' ', $result);\n$result = strtoupper($result);<\/code><\/pre>\n<h3>Analisi degli URL con la nuova estensione URI<\/h3>\n<p>Gli URL (noti anche come URI per i pi\u00f9 esigenti) sono essenziali per la navigazione sul web, ma la funzione <code class=\"language-php\">parse_url()<\/code>, integrata in PHP dalla versione 4, ha notoriamente problemi con gli input malformati che possono portare a errori quando si tenta di manipolare o convalidare gli indirizzi dei siti web.<\/p>\n<p>Per migliorare il parsing degli URL, PHP 8.5 incorpora le librerie <a href=\"https:\/\/uriparser.github.io\/\">uriparser<\/a> e <a href=\"https:\/\/lexbor.com\/\">Lexbor<\/a> per supportare rispettivamente gli standard <a href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc3986\">RFC 3986<\/a> e <a href=\"https:\/\/url.spec.whatwg.org\/\">WHATWG URL<\/a>.<\/p>\n<p>Puoi invocare la libreria uniparser iniziando a lavorare con la nuova estensione URI in questo modo:<\/p>\n<pre><code class=\"language-php\">$uri = new UriRfc3986Uri(\"https:\/\/kinsta.com\/blog\/php-8-5\/\"); \n\necho $uri-&gt;getScheme();       \/\/ https\necho $uri-&gt;getHost();         \/\/ kinsta.com\necho $uri-&gt;getPath();         \/\/ \/blog\/php-8-5<\/code><\/pre>\n<p>In alternativa, puoi scegliere la libreria Lexbor WHATWG URL in questo modo:<\/p>\n<pre><code class=\"language-php\">$uri = new UriWagWgUrl(\"https:\/\/kinsta.com\/blog\/php-8-5\/\"); \n\necho $uri-&gt;getScheme();       \/\/ https\necho $uri-&gt;getUnicodeHost();  \/\/ kinsta.com\necho $uri-&gt;getAsciiHost();    \/\/ kinsta.com\necho $uri-&gt;getPath();         \/\/ \/blog\/php-8-5<\/code><\/pre>\n<p>Gli esempi precedenti sono i pi\u00f9 elementari. Le due librerie rappresentate dall&#8217;estensione URI in PHP 8.5 condividono alcune funzionalit\u00e0 ma presentano anche differenze significative.<\/p>\n<p>Una differenza importante \u00e8 che la libreria RFC 3986 supporta sia le rappresentazioni &#8220;grezze&#8221; che quelle &#8220;normalizzate-decodificate&#8221; degli URI. Questo pu\u00f2 essere utile quando si lavora con input e output codificati in percentuale. Utilizzati in un browser, ad esempio, questi due URI sono identici:<\/p>\n<ul>\n<li><a href=\"https:\/\/kinsta.com\/it\/mykinsta\/\">https:\/\/kinsta.com\/mykinsta\/<\/a><\/li>\n<li><a href=\"https:\/\/kinsta.com\/it\/mykinsta\/\">https:\/\/kinsta.com\/%6D%79%6B%69%6E%73%74%61\/<\/a><\/li>\n<\/ul>\n<p>Nelle versioni precedenti di PHP, si poteva iniziare con <code class=\"language-php\">rawurldecode()<\/code> e <code class=\"language-php\">rawurlencode()<\/code> (che sono anche conformi alla RFC 3986), ma la nuova estensione \u00e8 pronta a lavorare con tutti i componenti degli URI, indipendentemente dal fatto che siano codificati o meno.<\/p>\n<p>Ecco alcuni esempi tratti direttamente dalla <a href=\"https:\/\/wiki.php.net\/rfc\/url_parsing_api\">RFC che sta alla base della nuova API di parsing<\/a>:<\/p>\n<pre><code class=\"language-php\">$uri = new UriRfc3986Uri(\"https:\/\/%61pple:p%61ss@ex%61mple.com\/foob%61r?%61bc=%61bc\");\n  \necho $uri-&gt;getRawUserInfo();  \/\/ %61pple:p%61ss\necho $uri-&gt;getUserInfo();     \/\/ apple:pass\n \necho $uri-&gt;getRawUsername();  \/\/ %61pple\necho $uri-&gt;getUsername();     \/\/ apple\n \necho $uri-&gt;getRawPassword();  \/\/ p%61ss\necho $uri-&gt;getPassword();     \/\/ pass\n \necho $uri-&gt;getRawHost();      \/\/ ex%61mple.com\necho $uri-&gt;getHost();         \/\/ example.com\n \necho $uri-&gt;getRawPath();      \/\/ \/foob%61r\necho $uri-&gt;getPath();         \/\/ \/foobar\n \necho $uri-&gt;getRawQuery();     \/\/ %61bc=%61bc\necho $uri-&gt;getQuery();        \/\/ abc=abc<\/code><\/pre>\n<p>Quando si utilizza la libreria URL WHATWG con la nuova estensione, tutti gli URI sono trattati come &#8220;grezzi&#8221;, quindi non c&#8217;\u00e8 una serie di funzioni separate per supportare la formattazione alternativa. Tuttavia, la libreria \u00e8 in grado di convertire i caratteri ASCII e Unicode spesso presenti negli URI.<\/p>\n<h3>Pi\u00f9 precisione con la nuova direttiva INI max_memory_limit<\/h3>\n<p>Si dice che da grandi poteri derivino grandi responsabilit\u00e0. Se questo potere include la scelta della quantit\u00e0 di memoria del server che la tua applicazione PHP pu\u00f2 tentare di utilizzare, potresti essere tu responsabile dei crash dell&#8217;applicazione quando i processi consumano pi\u00f9 memoria di quella disponibile.<\/p>\n<p>Una tipica installazione di PHP comprende un file <code>php.ini<\/code> con informazioni di configurazione che includono una direttiva che specifica il limite di consumo di memoria per ogni processo (<a href=\"https:\/\/kinsta.com\/it\/blog\/thread-php-vs-limite-memoria-php\/\">o thread<\/a>) PHP. Una direttiva INI comune per un limite di memoria di 128 MB si presenta come segue:<\/p>\n<pre><code>\/\/ php.ini\nmemory_limit 128M<\/code><\/pre>\n<p>Su alcune piattaforme di hosting, chi sviluppa applicazioni PHP pu\u00f2 ignorare <code>memory_limit<\/code> al volo utilizzando la funzione <code class=\"language-php\">ini_set()<\/code> nel codice:<\/p>\n<pre><code class=\"language-php\">ini_set(\u2018memory_limit\u2019, \u2018256M\u2019);\n \n\/\/ Start code that requires up to 256 MB of memory<\/code><\/pre>\n<p>\u00c8 anche possibile passare alla funzione il valore <strong>-1<\/strong>, come <code class=\"language-php\">ini_set('memory_limit', '-1')<\/code>, per non imporre alcun limite.<\/p>\n<p>Sovrascrivere la direttiva INI per un limite di memoria pu\u00f2 essere rischioso per gli sviluppatori che non conoscono bene le configurazioni di memoria dei server su cui gireranno le loro applicazioni. Se uno o pi\u00f9 thread PHP tentano di consumare pi\u00f9 della memoria totale, il risultato pu\u00f2 essere un crash dell&#8217;applicazione senza preavviso.<\/p>\n<p>PHP 8.5 aggiunge una direttiva INI <code>max_memory_limit<\/code> che funge da limite massimo, anche nelle configurazioni in cui gli sviluppatori hanno accesso a <code class=\"language-php\">init_set()<\/code> per modificare l&#8217;uso della memoria nel codice.<\/p>\n<p>Ecco degli esempi di voci nel file <code>php.ini<\/code> di un&#8217;installazione di PHP 8.5:<\/p>\n<pre><code>\/\/ php.ini\nmax_memory_limit 256M\nmemory_limit 128M<\/code><\/pre>\n<p>Con un <code>max_memory_limit<\/code> di 256 MB, ecco cosa succede nel codice PHP:<\/p>\n<pre><code class=\"language-php\">ini_set('memory_limit', '256M');  \/\/ This is OK\nini_set('memory_limit', '512M');  \/\/ Fail with warning\nini_set('memory_limit', '-1');    \/\/ Fail with warning<\/code><\/pre>\n<p>Il tentativo di impostare un nuovo limite di memoria di 512 MB (o illimitato) non avr\u00e0 successo. Al contrario, PHP imposter\u00e0 il limite di memoria al valore assegnato a <code>max_memory_limit<\/code> nel file <code>php.ini<\/code> ed emetter\u00e0 un avviso. (Il messaggio di avviso potrebbe essere visualizzato sullo schermo e registrato, a seconda delle impostazioni di segnalazione degli errori dell&#8217;installazione PHP).<\/p>\n<p>Un approccio saggio per chi sviluppa con PHP 8.5 sarebbe quello di utilizzare la funzione <code class=\"language-php\">ini_get()<\/code> per verificare se il nuovo limite massimo \u00e8 stato definito, come <code class=\"language-php\">ini_get('max_memory_limit')<\/code>, e quindi regolarsi in base al valore restituito. Con le versioni di PHP precedenti alla 8.5, questa chiamata restituirebbe tranquillamente <code>false<\/code>.<\/p>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-info\">\n            <h3>Info<\/h3>\n        <p>La memoria viene gestita in modo un po&#8217; diverso su Kinsta. \u00c8 possibile gestire il numero di thread e la memoria allocata a ciascuno di essi utilizzando lo <a href=\"https:\/\/kinsta.com\/it\/docs\/hosting-wordpress\/php\/wordpress-prestazioni-php\/\">strumento Prestazioni PHP<\/a>. Lo stesso strumento permette di aumentare (a pagamento) o diminuire la dimensione del pool di memoria totale condiviso dai thread.<\/p>\n<\/aside>\n\n<h3>Lettura del primo o dell&#8217;ultimo valore di un array<\/h3>\n<p>Alzi la mano chi pensa che PHP disponga gi\u00e0 di funzioni per leggere i valori memorizzati come primi o ultimi membri di un array.<\/p>\n<p>A quanto pare, non \u00e8 cos\u00ec. Ma da <a href=\"https:\/\/kinsta.com\/it\/blog\/php-7-3\/#array-key-first-last\">PHP 7.3<\/a> esistono funzioni per scoprire la prima e l&#8217;ultima <strong>chiave<\/strong> di un array. Quindi, per trovare il primo e l&#8217;ultimo valore, si possono utilizzare le funzioni <code class=\"language-php\">array_key_first()<\/code> o <code class=\"language-php\">array_key_last()<\/code> e poi usare le chiavi restituite per fare riferimento ai valori che stiamo cercando:<\/p>\n<pre><code class=\"language-php\">$array = [\"One\", \"Two\", \"Three\"];\n\necho $array[array_key_first($array)]; \/\/ \"One\"\n<\/code><\/pre>\n<p>PHP 8.5 elimina un passaggio per questo compito e permette di raggiungere i valori direttamente con le nuove funzioni <code class=\"language-php\">array_first()<\/code> e <code class=\"language-php\">array_last()<\/code>.<\/p>\n<p>\u00c8 tutto molto semplice:<\/p>\n<pre><code class=\"language-php\">$array = [\"One\", \"Two\", \"Three\"];\n\necho array_first($array);  \/\/ \"One\"\necho array_last($array);   \/\/ \"Three\"\necho array_last([]);       \/\/ null<\/code><\/pre>\n<p>Qui sopra, vediamo che un array vuoto restituir\u00e0 <code>null<\/code>, ma questo non conferma che l&#8217;intero array sia vuoto, poich\u00e9 un valore dell&#8217;array pu\u00f2 essere nullo:<\/p>\n<pre><code class=\"language-php\">echo array_last([1, 2, null]); \/\/ null<\/code><\/pre>\n<h3>L&#8217;importanza di usare il valore di ritorno di una funzione<\/h3>\n<p>PHP 5.8 aggiunge un nuovo attributo <code class=\"language-php\">#[NoDiscard]<\/code> che indica che il valore di ritorno di una funzione potrebbe essere critico. PHP verificher\u00e0 che il valore di ritorno sia consumato in qualche modo e, in caso contrario, emetter\u00e0 un avviso.<\/p>\n<p>Un semplice esempio:<\/p>\n<pre><code class=\"language-php\">#[NoDiscard(\"this message property will be appended to the built-in warning.\")]\nfunction foo(): string {\n    return 'bar';\n}\n\n\/\/ Warning:\n\/\/ The return value of function foo() is expected to be consumed,\n\/\/ this message property will be appended to the built-in warning.\nfoo();\n\n\/\/ This will not trigger a warning:\n$result = foo();\n\n\/\/ Also satisfactory is the (void) cast:\n(void) foo();<\/code><\/pre>\n<p>Nell&#8217;esempio precedente, il valore di ritorno della funzione definita non viene affatto utilizzato in prima istanza, facendo scattare un avviso. Ma quando viene assegnato alla variabile <code class=\"language-php\">$result<\/code> o lanciato come <code class=\"language-php\">void<\/code>, il valore viene considerato consumato.<\/p>\n<p>Gli autori della <a href=\"https:\/\/wiki.php.net\/rfc\/marking_return_value_as_important\">RFC alla base di questa aggiunta<\/a> a PHP 8.5 hanno descritto usi pi\u00f9 convincenti di questo attributo rispetto al semplice esempio precedente. Uno scenario era quello di una funzione critica con una segnalazione di errore pi\u00f9 complessa di un semplice pass\/fail, e meglio veicolata attraverso il valore di ritorno della funzione.<\/p>\n<h4>Altri miglioramenti relativi agli attributi<\/h4>\n<p>Oltre al nuovo attributo <code class=\"language-php\">#[NoDiscard]<\/code>, gli altri miglioramenti apportati alla funzionalit\u00e0 dei metadati degli attributi nella nuova versione includono:<\/p>\n<ul>\n<li>Gli attributi possono ora puntare alle costanti.<\/li>\n<li>L&#8217;attributo <code class=\"language-php\">#[Override]<\/code> pu\u00f2 ora essere applicato alle propriet\u00e0.<\/li>\n<li>L&#8217;attributo <code class=\"language-php\">#[Deprecated]<\/code> pu\u00f2 essere utilizzato su tratti e costanti.<\/li>\n<li>Un nuovo attributo <code class=\"language-php\">#[DelayedTargetValidation]<\/code> pu\u00f2 essere utilizzato per sopprimere gli errori in fase di compilazione degli attributi del nucleo e delle estensioni che vengono utilizzati su obiettivi non validi.<\/li>\n<\/ul>\n<h2>Deprecazioni e rimozioni in PHP 8.5<\/h2>\n<p>Ogni versione di PHP contiene un elenco di funzionalit\u00e0 che verranno rimosse nelle versioni future. L&#8217;utilizzo di funzionalit\u00e0 deprecate nel codice far\u00e0 scattare degli avvertimenti. Quando verrano definitivamente rimosse da PHP, il loro utilizzo potrebbe causare errori fatali.<\/p>\n<p>Ecco alcuni importanti elementi deprecati o rimossi in PHP 8.5:<\/p>\n<ul>\n<li>L&#8217;operatore backtick come alias di <code class=\"language-php\">shell_exec()<\/code> \u00e8 stato deprecato.<\/li>\n<li>I nomi di cast non canonici <code class=\"language-php\">(boolean)<\/code>, <code class=\"language-php\">(integer)<\/code>, <code class=\"language-php\">(double)<\/code> e <code class=\"language-php\">(binary)<\/code> sono stati deprecati. Usa invece <code class=\"language-php\">(bool)<\/code>, <code class=\"language-php\">(int)<\/code>, <code class=\"language-php\">(float)<\/code> e <code class=\"language-php\">(string)<\/code>.<\/li>\n<li>L&#8217;impostazione INI disable_classes \u00e8 stata rimossa perch\u00e9 causava l&#8217;interruzione di diversi assunti del motore.<\/li>\n<li>La terminazione delle istruzioni di <code class=\"language-php\">case<\/code> con un punto e virgola invece che con i due punti \u00e8 stata deprecata.<\/li>\n<li>L&#8217;uso di null come offset di un array o quando si chiama <code class=\"language-php\">array_key_exists()<\/code> \u00e8 ora deprecato. Usa invece una stringa vuota.<\/li>\n<li>Non \u00e8 pi\u00f9 possibile utilizzare &#8220;array&#8221; e &#8220;callable&#8221; come nomi di alias di classe in <code class=\"language-php\">class_alias()<\/code>.<\/li>\n<li>I metodi magici di <code class=\"language-php\">__sleep()<\/code> e <code class=\"language-php\">__wakeup()<\/code> sono stati deprecati. Al loro posto vanno utilizzati i metodi magici di <code class=\"language-php\">__serialize()<\/code> e <code class=\"language-php\">__unserialize()<\/code>.<\/li>\n<li>Ora viene emesso un avviso quando si esegue il casting di NAN in altri tipi.<\/li>\n<li>La destrutturazione di valori non-array (diversi da null) utilizzando <code class=\"language-php\">[]<\/code> o <code class=\"language-php\">list()<\/code> ora emette un avviso.<\/li>\n<li>Ora viene emesso un avviso quando si lanciano i float (o le stringhe che sembrano float) in <code class=\"language-php\">int<\/code> se non possono essere rappresentati come tali.<\/li>\n<\/ul>\n<h2>Riepilogo<\/h2>\n<p>Questo era uno sguardo ai punti salienti della versione 8.5 di PHP. Siamo certi che il nuovo operatore pipe e il miglioramento del parsing degli URI saranno apprezzati dagli sviluppatori. Forse anche le nuove funzioni <code class=\"language-php\">array_first()<\/code> e <code class=\"language-php\">array_last()<\/code> &#8211; anche se avremmo scommesso che esistevano gi\u00e0.<\/p>\n<p>Ma ogni nuova versione di PHP comprende centinaia di cambiamenti. Puoi trovare l&#8217;<a href=\"https:\/\/github.com\/php\/php-src\/blob\/PHP-8.5\/UPGRADING\">elenco completo degli aggiornamenti di PHP 8.5<\/a> nel repository ufficiale del Gruppo PHP su GitHub.<\/p>\n<p>Nel frattempo, qui a Kinsta stiamo lavorando per rendere disponibile PHP 8.5 ai nostri clienti con l&#8217;<a href=\"https:\/\/kinsta.com\/it\/hosting-wordpress\/\">hosting per WordPress<\/a>. Quando sar\u00e0 online, potrai passare alla nuova versione utilizzando i nostri strumenti per l&#8217;<a href=\"https:\/\/kinsta.com\/it\/docs\/hosting-wordpress\/php\/wordpress-riavviare-aggiornare-php\/#update-php\">impostazione di PHP<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Il gruppo PHP ha rilasciato la versione 8.5 del linguaggio di scripting open source che alimenta gran parte del web, compresi i siti che utilizzano il &#8230;<\/p>\n","protected":false},"author":259,"featured_media":82711,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[26188],"class_list":["post-82710","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","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>PHP 8.5: le novit\u00e0 dell&#039;ultima versione<\/title>\n<meta name=\"description\" content=\"\u00c8 arrivato quel periodo dell&#039;anno in cui viene presentata una nuova versione di PHP. Ecco le novit\u00e0 principali di PHP 8.5.\" \/>\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-8-5\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PHP 8.5: ecco le novit\u00e0 dell&#039;ultima versione\" \/>\n<meta property=\"og:description\" content=\"\u00c8 arrivato quel periodo dell&#039;anno in cui viene presentata una nuova versione di PHP. Ecco le novit\u00e0 principali di PHP 8.5.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/it\/blog\/php-8-5\/\" \/>\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=\"2025-12-05T08:32:07+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-08T15:00:49+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2025\/12\/whats-new-in-php-8.5.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1470\" \/>\n\t<meta property=\"og:image:height\" content=\"735\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Steve Bonisteel\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"\u00c8 arrivato quel periodo dell&#039;anno in cui viene presentata una nuova versione di PHP. Ecco le novit\u00e0 principali di PHP 8.5.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2025\/12\/whats-new-in-php-8.5.png\" \/>\n<meta name=\"twitter:creator\" content=\"@Kinsta_IT\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_IT\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Steve Bonisteel\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 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-8-5\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/php-8-5\/\"},\"author\":{\"name\":\"Steve Bonisteel\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/d84ceff87bd64a4368a581fc8aa8bd6f\"},\"headline\":\"PHP 8.5: ecco le novit\u00e0 dell&#8217;ultima versione\",\"datePublished\":\"2025-12-05T08:32:07+00:00\",\"dateModified\":\"2025-12-08T15:00:49+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/php-8-5\/\"},\"wordCount\":1718,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/it\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/php-8-5\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2025\/12\/whats-new-in-php-8.5.png\",\"inLanguage\":\"it-IT\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/php-8-5\/\",\"url\":\"https:\/\/kinsta.com\/it\/blog\/php-8-5\/\",\"name\":\"PHP 8.5: le novit\u00e0 dell'ultima versione\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/it\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/php-8-5\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/php-8-5\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2025\/12\/whats-new-in-php-8.5.png\",\"datePublished\":\"2025-12-05T08:32:07+00:00\",\"dateModified\":\"2025-12-08T15:00:49+00:00\",\"description\":\"\u00c8 arrivato quel periodo dell'anno in cui viene presentata una nuova versione di PHP. Ecco le novit\u00e0 principali di PHP 8.5.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/php-8-5\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/it\/blog\/php-8-5\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/php-8-5\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2025\/12\/whats-new-in-php-8.5.png\",\"contentUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2025\/12\/whats-new-in-php-8.5.png\",\"width\":1470,\"height\":735},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/php-8-5\/#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\":\"PHP 8.5: ecco le novit\u00e0 dell&#8217;ultima versione\"}]},{\"@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\/d84ceff87bd64a4368a581fc8aa8bd6f\",\"name\":\"Steve Bonisteel\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0adffb3f9c86a6ec8245f8399d540823?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0adffb3f9c86a6ec8245f8399d540823?s=96&d=mm&r=g\",\"caption\":\"Steve Bonisteel\"},\"description\":\"Steve Bonisteel is a Technical Editor at Kinsta who began his writing career as a print journalist, chasing ambulances and fire trucks. He has been covering Internet-related technology since the late 1990s.\",\"url\":\"https:\/\/kinsta.com\/it\/blog\/author\/stevebonisteel\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"PHP 8.5: le novit\u00e0 dell'ultima versione","description":"\u00c8 arrivato quel periodo dell'anno in cui viene presentata una nuova versione di PHP. Ecco le novit\u00e0 principali di PHP 8.5.","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-8-5\/","og_locale":"it_IT","og_type":"article","og_title":"PHP 8.5: ecco le novit\u00e0 dell'ultima versione","og_description":"\u00c8 arrivato quel periodo dell'anno in cui viene presentata una nuova versione di PHP. Ecco le novit\u00e0 principali di PHP 8.5.","og_url":"https:\/\/kinsta.com\/it\/blog\/php-8-5\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstaitalia\/","article_published_time":"2025-12-05T08:32:07+00:00","article_modified_time":"2025-12-08T15:00:49+00:00","og_image":[{"width":1470,"height":735,"url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2025\/12\/whats-new-in-php-8.5.png","type":"image\/png"}],"author":"Steve Bonisteel","twitter_card":"summary_large_image","twitter_description":"\u00c8 arrivato quel periodo dell'anno in cui viene presentata una nuova versione di PHP. Ecco le novit\u00e0 principali di PHP 8.5.","twitter_image":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2025\/12\/whats-new-in-php-8.5.png","twitter_creator":"@Kinsta_IT","twitter_site":"@Kinsta_IT","twitter_misc":{"Scritto da":"Steve Bonisteel","Tempo di lettura stimato":"10 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/it\/blog\/php-8-5\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/it\/blog\/php-8-5\/"},"author":{"name":"Steve Bonisteel","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/d84ceff87bd64a4368a581fc8aa8bd6f"},"headline":"PHP 8.5: ecco le novit\u00e0 dell&#8217;ultima versione","datePublished":"2025-12-05T08:32:07+00:00","dateModified":"2025-12-08T15:00:49+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/it\/blog\/php-8-5\/"},"wordCount":1718,"publisher":{"@id":"https:\/\/kinsta.com\/it\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/it\/blog\/php-8-5\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2025\/12\/whats-new-in-php-8.5.png","inLanguage":"it-IT"},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/it\/blog\/php-8-5\/","url":"https:\/\/kinsta.com\/it\/blog\/php-8-5\/","name":"PHP 8.5: le novit\u00e0 dell'ultima versione","isPartOf":{"@id":"https:\/\/kinsta.com\/it\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/it\/blog\/php-8-5\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/it\/blog\/php-8-5\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2025\/12\/whats-new-in-php-8.5.png","datePublished":"2025-12-05T08:32:07+00:00","dateModified":"2025-12-08T15:00:49+00:00","description":"\u00c8 arrivato quel periodo dell'anno in cui viene presentata una nuova versione di PHP. Ecco le novit\u00e0 principali di PHP 8.5.","breadcrumb":{"@id":"https:\/\/kinsta.com\/it\/blog\/php-8-5\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/it\/blog\/php-8-5\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/blog\/php-8-5\/#primaryimage","url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2025\/12\/whats-new-in-php-8.5.png","contentUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2025\/12\/whats-new-in-php-8.5.png","width":1470,"height":735},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/it\/blog\/php-8-5\/#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":"PHP 8.5: ecco le novit\u00e0 dell&#8217;ultima versione"}]},{"@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\/d84ceff87bd64a4368a581fc8aa8bd6f","name":"Steve Bonisteel","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/0adffb3f9c86a6ec8245f8399d540823?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0adffb3f9c86a6ec8245f8399d540823?s=96&d=mm&r=g","caption":"Steve Bonisteel"},"description":"Steve Bonisteel is a Technical Editor at Kinsta who began his writing career as a print journalist, chasing ambulances and fire trucks. He has been covering Internet-related technology since the late 1990s.","url":"https:\/\/kinsta.com\/it\/blog\/author\/stevebonisteel\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/82710","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\/259"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/comments?post=82710"}],"version-history":[{"count":4,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/82710\/revisions"}],"predecessor-version":[{"id":82738,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/82710\/revisions\/82738"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/82710\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/82710\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/82710\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/82710\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/82710\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/82710\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/82710\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/82710\/translations\/es"},{"href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/82710\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/media\/82711"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/media?parent=82710"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/tags?post=82710"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/topic?post=82710"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}