• Home
  • Corsi

    Informazioni sui corsi

    • Tutti i corsi
    • Diventa un insegnante
    • Profilo insegnante
    Fondamenti di programmazione: le basi del linguaggio C++

    Fondamenti di programmazione: le basi del linguaggio C++

    €29.99 €9.99
    Read More
    D4F Games
  • Develop4fun
    • Chi siamo
    • Portfolio
    • Eventi
    • Galleria
    • Negozio
    • FAQ
  • Articoli
  • Contattaci
  • Accedi

Cerca

Hai qualche domanda?
contact@develop4fun.com
Develop4fun
  • Home
  • Corsi

    Informazioni sui corsi

    • Tutti i corsi
    • Diventa un insegnante
    • Profilo insegnante
    Fondamenti di programmazione: le basi del linguaggio C++

    Fondamenti di programmazione: le basi del linguaggio C++

    €29.99 €9.99
    Read More
    D4F Games
  • Develop4fun
    • Chi siamo
    • Portfolio
    • Eventi
    • Galleria
    • Negozio
    • FAQ
  • Articoli
  • Contattaci
  • Accedi
    • Categorie

      • Backend
        • PHP e MySQL
      • C#
      • C++
      • CMS
      • CSS
      • Frontend
        • CSS
        • Html
        • Javascript
      • Html
      • Javascript
      • Javascript
      • Linguaggio di programmazione
        • C#
        • C++
        • Javascript
        • Lua
      • LOVE2D
      • Lua
      • Phaser 3
      • PHP e MySQL
      • RayLib
      • Sviluppo
        • Linguaggio di programmazione
          • C#
          • C++
          • Javascript
          • Lua
        • Videogiochi
          • LOVE2D
          • Phaser 3
          • RayLib
          • Unity3D
          • Unreal Engine
        • Web
          • Backend
            • PHP e MySQL
          • CMS
          • Frontend
            • CSS
            • Html
            • Javascript
      • Unity3D
      • Unreal Engine
      • Videogiochi
        • LOVE2D
        • Phaser 3
        • RayLib
        • Unity3D
        • Unreal Engine
      • Web
        • Backend
          • PHP e MySQL
        • CMS
        • Frontend
          • CSS
          • Html
          • Javascript

Linguaggi di Programmazione

Home » Articoli » PHP 7.4. Tutte le novità e le funzionalità deprecate

PHP 7.4. Tutte le novità e le funzionalità deprecate

  • Pubblicato da Antonella De Chiara
  • Categorie Linguaggi di Programmazione, PHP
  • Data 27 Gennaio 2020
  • Commenti 0 commenti
PHP 7.4.
(Ultimo aggiornamento: 21 Settembre 2021)

A fine novembre 2019 è stata rilasciata ufficialmente la versione 7.4 di PHP. Nell’aggiornamento sono presenti diverse novità che vale la pena approfondire.

Anche se PHP 7.4 migliora significativamente le prestazioni e la leggibilità del codice, PHP 8 sarà la vera pietra miliare per le prestazioni di PHP, poiché la proposta di inclusione di JIT è già stata approvata.

Ad ogni modo, oggi analizzeremo insieme alcune delle funzionalità e delle modifiche più interessanti che ci attendiamo da PHP 7.4. Giusto per registrazione, queste sono state le date importanti che hanno portato al rilascio di PHP 7.4::

  • 6 giugno: PHP 7.4 Alpha 1
  • 18 luglio: PHP 7.4 Beta 1 – Congelamento delle funzionalità
  • 28 novembre: rilascio di PHP 7.4 per la GA

Potete trovare l’elenco completo delle funzionalità e delle novità nella pagina ufficiale della RFC.

Scopriamo insieme quali sono.

Typed properties

Finalmente anche per le proprietà di una classe è possibile definire il tipo, confermando il lavoro che da anni si sta facendo verso un linguaggio più tipizzato.

Analizziamo però un esempio:

class Book
{
    public string $title;
    public string $isbn;
    public \DateTime $publicationDate;
    public float $price;
    ..
}

Quello che succede assegnando un tipo di dato diverso da quello che ci aspettiamo per una proprietà è un Fatal error:

$book->price = 'ten dollars';
Fatal error: Uncaught TypeError: Typed property Book::$price must be float, string used..

Arrow functions

Chi utilizza Javascript avrà notato la comodità delle arrow function. Dalla release 7.4 anche PHP le prevede, con una sintassi non molto diversa da quella di Javascript:

fn($book) => $book->title;

Vediamo anche un esempio all’interno di un \array_map per capirne i vantaggi.

// PHP <= 7.3
$bookTitles = \array_map(function($book) {
    return $book->title;
}, $books);
// PHP 7.4
$bookTitle => \array_map(fn($book) => $book->title, $books);

Possiamo notare che, oltre ad aver scritto un po’ meno codice, è la leggibilità che ne trae molto vantaggio.

Ricordiamoci sempre che all’interno di una arrow function è necessario utilizzare una sola istruzione e non deve mai contenere la keyword return.

Unpacking all’interno di array

Nelle precedenti versioni è stato già introdotto lo spread operator ... con cui scompattare un array ed “appiattirlo”. Dalla versione 7.4 è possibile utilizzarlo anche all’interno della dichiarazione di un array. Vediamo un esempio:

$numbers = [1, 2, 3];
$moreNumbers = [4, ...$numbers, 5, 6];
array(6) {
  [0]=>
  int(4)
  [1]=>
  int(1)
  [2]=>
  int(2)
  [3]=>
  int(3)
  [4]=>
  int(5)
  [5]=>
  int(6)
}

Null Coalescing Assignment Operator

Il null coalescing assignment operator è uno shorthand che combina due check: l’isset() per verificare che una chiave all’interno dell’array esista ed un operatore ternario. Già con PHP 7.0 qualcosa era stato introdotto, con la nuova versione è stato migliorato ulteriormente.

Vediamo qualche esempio:

// PHP < 7
$book['name'] = isset($book['name']) ? $book['name'] : 'no title';
// PHP >= 7.0
$book['name']= $book['name'] ?? 'no title';
// PHP 7.4
$book['name'] ??= 'no title';

Funzionalità deprecate

Oltre alle novità che abbiamo appena introdotto, ci sono delle importanti deprecazioni che bisogna tenere a mente durante lo sviluppo.

Operatori ternari annidati senza parentesi

Per migliorare la leggibilità del codice sono stati deprecati gli operatori ternari annidati senza l’utilizzo di parentesi.

// Non OK (deprecato)
$value = $a ? $b : $c ? $d : $e;
// OK
$value = ( $a ? $b : $c ) ? $d : $e;
// OK
$value = $a ? $b : ( $c ? $d : $e );

Utilizzo di \array_key_exists() per gli oggetti

Non è una pratica molto diffusa ma si poteva utilizzare \array_key_exists() anche per verificare che una classe contenesse o meno una determinata proprietà. La versione PHP 7.4 ha deprecato questa tecnica consigliando l’utlizzo di \property_exists() o, più semplicemente, di una \isset().

Accesso alle chiavi di un array attraverso le parentesi graffe

Anche questa non è una tecnica particolarmente diffusa e consiste nell’accedere agli indici di un array tramite parentesi graffe anziché quadre. Anche in questo caso è stata deprecata.

// NON OK (deprecato)
$array{ $key };
// OK
$array[ $key ];
Visualizzazioni post: 1.049

Tag:array, Arrow functions, Funzionalità deprecate, funzione php, isset, Null Coalescing Assignment, PHP 7.4, shorthand, spread operator, Typed properties, Unpacking

  • Share:

INFORMAZIONI SULL'AUTORE

Antonella De Chiara
Antonella De Chiara

Appassionata di giochi di ruolo giapponesi, genere che ha scoperto grazie alla saga Final Fantasy e approfondito con i capolavori usciti negli ultimi anni, s’interessa al retrogaming, rigiocando e programmando vecchie glorie come Monkey Island, Prince of Persia o vecchi capolavori marchiati Nintendo.
Antonella comincia il suo percorso giornalistico in Italia, lavorando con Gamerepublic, PS Mania e Pokémon Mania. Si trasferisce in Francia per studiare la programmazione web e gamedev: grazie a questo percorso anomalo nasce Develop4fun.

Articolo precedente

Libri che spiegano come creare un videogioco
27 Gennaio 2020

Articolo successivo

Creare un videogioco in 2D: corso online
3 Febbraio 2020

Ti potrebbe anche piacere

Money Game
Sviluppare Videogiochi: come fare un’indagine sul mercato
9 Settembre, 2021
Programmazione
5 regole base per iniziare qualsiasi progetto videoludico
20 Luglio, 2021
Gamedev
Creazione di videogiochi: una lista di siti web per gli assets
8 Luglio, 2021

Lascia un commento Annulla risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Cerca

Impara a programmare videogiochi web con Phaser 3

Impara a programmare videogiochi web con Phaser 3

€49.99 €9.99
HTML e CSS: Corso di programmazione per principianti

HTML e CSS: Corso di programmazione per principianti

€69.99 €9.99
[Lua & LOVE2D] Introduzione alla programmazione dei videogiochi

[Lua & LOVE2D] Introduzione alla programmazione dei videogiochi

€49.99 €9.99
D4F Games

Ultimi articoli pubblicati

unity3d
Chi sono gli sviluppatori nel mondo dei videogiochi?
22Nov2021
[Unreal Engine] Un nuovo fantastico asset GRATUITO!
[Unreal Engine] Slay, un nuovo fantastico asset GRATUITO!
22Set2021
Steam
Come pubblicare un videogioco su Steam?
21Set2021

© Develop4fun.it by Develop4fun  2016-2022. Tutti i diritti riservati.

Gestisci Consenso Cookie
Usiamo cookie per ottimizzare il nostro sito web ed i nostri servizi.
Funzionale Sempre attivo
L'archiviazione tecnica o l'accesso sono strettamente necessari al fine legittimo di consentire l'uso di un servizio specifico esplicitamente richiesto dall'abbonato o dall'utente, o al solo scopo di effettuare la trasmissione di una comunicazione su una rete di comunicazione elettronica.
Preferenze
L'archiviazione tecnica o l'accesso sono necessari per lo scopo legittimo di memorizzare le preferenze che non sono richieste dall'abbonato o dall'utente.
Statistiche
L'archiviazione tecnica o l'accesso che viene utilizzato esclusivamente per scopi statistici. L'archiviazione tecnica o l'accesso che viene utilizzato esclusivamente per scopi statistici anonimi. Senza un mandato di comparizione, una conformità volontaria da parte del vostro Fornitore di Servizi Internet, o ulteriori registrazioni da parte di terzi, le informazioni memorizzate o recuperate per questo scopo da sole non possono di solito essere utilizzate per l'identificazione.
Marketing
L'archiviazione tecnica o l'accesso sono necessari per creare profili di utenti per inviare pubblicità, o per tracciare l'utente su un sito web o su diversi siti web per scopi di marketing simili.
Gestisci opzioni Gestisci servizi Gestisci fornitori Per saperne di più su questi scopi
Preferenze
{title} {title} {title}