PHP: usare le dichiarazioni di tipo sulle proprietà delle classi

PHP: usare le dichiarazioni di tipo sulle proprietà delle classi

In questo articolo vedremo come utilizzare i tipi di dati sulle proprietà delle classi PHP.

Supponiamo di avere una classe così strutturata:

class Request {
    public $url;
    
    public function __construct($url) {
        $this->url = $url;
    }
    
    public function post($data = []) {
       // Usa Request::url per la richiesta HTTP
    }
}

Non c'è attualmente alcuna garanzia che l'eventuale URL passato sia innanzitutto una stringa. Quindi istanziando la classe in questo modo:

$request = new Request(100);

Otterremo un errore solo quando proveremo ad invocare il metodo Request::post(). Possiamo ovviare a questo problema specificando il tipo di dati che dovrà avere la nostra proprietà:

class Request {
    public string $url;
    
    public function __construct($url) {
        $this->url = $url;
    }
    
    public function post($data = []) {
       // Usa Request::url per la richiesta HTTP
    }
}

Ora se proviamo ad istanziare di nuovo la classe con un tipo di dati errato per la proprietà url, PHP solleverà un TypeError. Possiamo specificare per le nostre proprietà i valori riportati nella documentazione ufficiale.

Torna su