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.