Le dichiarazioni di tipo in PHP forniscono asserzioni di tipo in fase di esecuzione per gli argomenti delle funzioni, i valori restituiti e le proprietà di classe.
Nelle funzioni, si può aggiungere un tipo di ritorno void per indicare che la funzione non restituisce alcun valore.
I tipi dichiarati servono anche come asserzioni in fase di esecuzione sul fatto che le funzioni restituiscano una risposta tipizzata in modo ragionevole.
<?php
class Driver
{
private int $serial_number;
public function setSerialNumber(int $number): void
{
$this->serial_number = $number;
}
public function getSerialNumber(): int
{
return $this->serial_number;
}
}
$driver = new Driver();
$driver->setSerialNumber("Version 1b"); // This will throw a TypeError
Se un argomento di una funzione, un valore restituito o una proprietà di classe può avere più di un tipo, si può dichiarare un'unione di tipi.
<?php
class IdentityCard
{
private int|null $id = null;
public function assign(int|float $id): void
{
$this->id = intval($id);
}
}
$card = new IdentityCard();
$card->assign(5.0);
Quando lavoriamo con il codice, potremmo non riuscire a specificare un tipo.
A partire da PHP 8.0, viene fornito un tipo di ripiego chiamato mixed.
Mixed equivale a un'unione di tipi che comprende object|resource|array|string|float|int|bool|null.
Lavori nell'ufficio comunale da un po' di tempo e hai sviluppato una serie di strumenti che velocizzano il lavoro di ogni giorno, per esempio quando compili i moduli.
Ora sta arrivando un nuovo collega e ti sei reso conto che i tuoi strumenti potrebbero non essere autoesplicativi. Nel tuo ufficio ci sono molte convenzioni strane, come compilare sempre i moduli con lettere maiuscole ed evitare di lasciare campi vuoti.
Come primo passo decidi di aggiungere le dichiarazioni di tipo di PHP, così che il nuovo collega possa iniziare subito a usare i tuoi strumenti.
Aggiungi le dichiarazioni del tipo di proprietà a ognuna delle proprietà dichiarate della classe Address.
Ogni proprietà della classe va dichiarata come stringa.
Aggiungi una dichiarazione del tipo di un parametro e una dichiarazione del tipo restituito al metodo blanks della classe Form.
Il metodo deve ricevere una lunghezza intera e restituire una rappresentazione sotto forma di stringa della riga vuota.
Aggiungi una dichiarazione del tipo di un parametro e una dichiarazione del tipo restituito al metodo letters della classe Form.
Il metodo deve ricevere una stringa, che rappresenta delle parole, e restituire un array di lettere.
Aggiungi le dichiarazioni del tipo dei parametri e una dichiarazione del tipo restituito al metodo checkLength della classe Form.
Il metodo deve ricevere una parola sotto forma di stringa e una lunghezza massima intera, e restituire un valore vero o falso.
Aggiungi una dichiarazione del tipo di un parametro, facendo uso della classe Address aggiornata in precedenza, e una dichiarazione del tipo restituito al metodo formatAddress della classe Form.
Il metodo deve ricevere un Address e restituire una stringa formattata.
Iscriviti a Exercism per imparare e padroneggiare PHP con 11 concetti122 esercizi e il mentoring di persone reali, tutto gratis.