✅ Notizie, temi, plugin WEB e WordPress. Qui condividiamo suggerimenti e le migliori soluzioni per siti web.

Utilizzo di tipi restituiti Nullable in PHP

30

“Una delle caratteristiche più interessanti offerte da PHP è il suggerimento di tipo specifico per coloro che provengono da un background di programmazione orientato agli oggetti.

Dal manuale PHP :

Le dichiarazioni di tipo consentono alle funzioni di richiedere che i parametri siano di un determinato tipo al momento della chiamata. Se il valore fornito è di tipo errato, viene generato un errore: in PHP 5, questo sarà un errore fatale recuperabile, mentre PHP 7 genererà un’eccezione TypeError.

Il motivo per cui questo è importante è perché fornisce alle persone che utilizzeranno il tuo codice, in particolare coloro che scriveranno codice sul tuo codice, quali tipi di parametri accetterà un determinato costruttore o funzione.

Ma c’è di più perché gli hint di tipo sono applicabili anche al tipo di dati che una funzione può restituire.

Tipi di restituzione annullabili

Per cominciare, supponiamo che tu abbia una funzione che dovrebbe restituire un oggetto di qualche tipo. In questo esempio, supponiamo di avere a Poste il post è rappresentato da un modello. Naturalmente, il modello sarà di tipo post, quindi la firma della classe sarà simile a questa :

<?php

namespace Acme;

class Post {
  // Attributes, Constructor, and Functions here.
}

Ora supponiamo che tu abbia una classe secondaria che restituirà un’istanza del post. Quando si utilizza un suggerimento di tipo per la funzione, la firma sarebbe simile a questa:

<?php

namespace Acme;

class PostManager {

  private $post;

  // Constructor and other Functions here.

  public function getPost(): Post
  {
    return $this->post;
  }

}

Il fatto è che il metodo può restituire un post o può restituire nullse il modello non è mai stato istanziato, passato a una determinata classe o semplicemente non esiste per qualche motivo, quindi dobbiamo tenerne conto.

Caso in questione: se hai lavorato in modo approfondito su WordPress per un certo periodo di tempo, allora sai che le funzioni possono restituire più cose (come un’istanza di WP_Erroro un array). Ma nel caso più puro orientato agli oggetti di cui sto parlando sopra, stiamo esaminando una funzione che potrebbe restituire nullo restituire un’istanza di Post.

E per indicare questo, puoi impostare il metodo in questo modo:

<?php

namespace Acme;

class PostManager {

  private $post;

  // Constructor and other Functions here.

  public function getPost(): ?Post
  {
    if ($this->post === null) {
      return null;
    }

    return $this->post;
  }
}

In breve, aggiungendo il semplice punto interrogativo prima del tipo di oggetto si dice "Questo metodo può restituire null o un’istanza di Post."

O, più precisamente dal manuale PHP:

Le dichiarazioni di tipo per parametri e valori restituiti possono ora essere contrassegnate come nullable anteponendo al nome del tipo un punto interrogativo. Ciò significa che, oltre al tipo specificato, NULLpuò essere passato rispettivamente come argomento o restituito come valore.

Quindi, sì, questo è un post un po’ lungo per spiegare un concetto semplice. Ma trovo che usare esempi concreti sia spesso più utile che parlarne semplicemente in astratto.

Fonte di registrazione: tommcfarlin.com

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More