stavo testando tipi restituiti con PHP 7.Void come tipo di ritorno
ho creato un semplice script per testare tipi restituiti di PHP 7:
<?php
Class Obj {
public function __construct(){
}
public function test(): string { //a string needs to be returned
return "ok";
}
}
function foo(): Obj { //instance of Obj needs to be returned
return new Obj();
}
$o = foo();
echo $o->test(); // output: ok
Ora in altri linguaggi di programmazione quando si specifica un tipo di ritorno void
significa che non è possibile restituire nulla o si otterrà un errore. Così ho scritto questo script:
<?php
function foo(): void {
}
foo();
Ora nello script sopra l'output previsto non è nulla. Invece mi dà un errore fatale:
Fatal error: Return value of foo() must be an instance of void, none returned on line 2
La mia domanda è (non ho potuto trovare), in PHP 7 ci sarà un simile void
tipo?
La risposta è che è stata proposta, ma non è andata molto oltre .... ed è probabile che sia un voto quasi deviante come suggerimento di tipo scalare: https://philsturgeon.uk/php/2015/02/15/php-void-much-ado-about-nothing/ –
prova usando return; – Blank
Sembra funzionare ora. Penso che l'abbiano aggiunto alla lingua. Ora se restituisci qualcosa quando il tipo di reso è stato dichiarato nullo, anche il linter si lamenterà. –