Il supporto per il Void Return Type introdotto in PHP 7.1 rappresenta un'implementazione significativa per questo linguaggio che, con la versione 7.x, è stato interessato da diversi interventi finalizzati a offrire maggiori opportunità nell'utilizzo dei tipi di ritorno. In precedenza PHP forniva già una modalità per indicare che una funzione potesse restituire un qualsiasi tipo di valore, era sufficiente omettere il tipo di ritorno, ma non si disponeva di un costrutto con cui indicare che non dovesse essere restituito alcun valore.
Volendo precisare meglio quanto detto si ipotizzi di creare una funzione come la seguente:
function blah_blah(): void {
return 555;
}
In PHP 5.6 il risultato della sua esecuzione sarebbe stato il seguente:
Parse error: syntax error, unexpected ':', expecting '{' in /path/func.php on line 2
Questo perché il Void Return Type non veniva supportato; in PHP 7.1 abbiamo invece:
Fatal error: A void function must not return a value in /path/func.php on line 3
Si ricordi infatti che non dovrà essere restituito alcun valore; gli altri tipi di ritorno possono essere forzati al momento della chiamata alla funzione, void
function blah_blah(): void {
}
così come quella che esplicita il ritorno di un valore ma non definisce alcun valore:
function blah_blah(): void {
return;
}
mentre void Fatal error void cannot be used as a parameter type
function blah_blah(void $blh) {
}
E' necessario fare particolare attenzione nell'uso del Void Return Type all'interno delle classi ereditarietà
class Blah
{
public function blah_blah(): void {
}
}
non è quindi consentita un'alterazione di tipo di questo genere:
class Blahblah extends Blah
{
public function blah_blah(): array {
}
}
diversamente di darà origine ad un Fatal error ("Fatal error: Declaration of Blahblah::blah_blah(): array must be compatible with Blah::blah_blah(): void..
Via PHP Wiki