What's your preferred method for returning multiple values?
I've seen a few different ways of trying to emulate a "tuple"-like return style in PHP. Luckily its possible in PHP, but there are a few different ways of doing so.
Here's an example:
$params_to_return = array(
'count' => range(1,10),
'sum' => array_sum(range(1,10))
);
// Manually
$count = $params_to_return['count'];
$sum = $params_to_return['sum'];
var_dump($count, $sum);
unset($count, $sum);
// Automatically
extract($params_to_return);
var_dump($count, $sum);
unset($count, $sum);
// Listing
list($count, $sum) = array_values($params_to_return);
var_dump($count, $sum);
unset($count, $sum);
(From https://gist.github.com/Rican7/8446462)
If you want to see how it behaves when executed, check here:
http://3v4l.org/0DGOb
What is your preferred way?
Written by Trevor N. Suarez
Related protips
3 Responses
I would like to test the performance of the functions but the cleaner I think is list...
But i think that normally a method shouldn't do something like that... *(Thinking in OOP...)
I think you should set some internals properties.
Shameless plug for golang... go natively supports multiple return values from a function.
@steve-Jansen yea, several languages do. Python does, etc., but that's far from the point isn't it?