Ritornare più valori in una funzione in PHP
Nella programmazione in generale, una funzione ritorna o void (quindi non ritorna nulla) o un valore.
E se invece avessimo bisogno di ritornare più valori?
In questo articolo vediamo un paio di esempi usando PHP; ma in verità possiamo riportare questi esempi anche in altri linguaggi.
Un primo modo è usare gli array:
function test() {
$nome = 'matteo';
$email = 'm@m.it';
return array('nome' => $nome, 'email' => $email);
}
list('nome' => $n, 'email' => $e) = test();
echo $n . '-' . $e;
Con list destrutturiamo l'array; cosa possibile in ogni linguaggio.
Una seconda possibilità è usare un oggetto contenitore:
class MyObj {
public $nome;
public $email;
}
function test() {
$myObj = new MyObj();
$myObj->nome = 'matteo';
$myObj->email = 'm@m.it';
return $myObj;
}
$myObj = test();
echo $myObj->nome . '-' . $myObj->email;
Una terza possibilità, che però non vediamo, è usare JSON.
Che in pratica possiamo considerare un ibrido; solo che prima va creato il JSON e poi deserializzato, il che potrebbe essere più lenta come operazione.
Enjooy!
php function array class
Commentami!