Il y a quelque temps, un an bientôt, j'avais posté un billet qui expliquait comment retourner plusieurs valeurs avec une fonction en utilisant les références. En y repensant, une autre solution m'apparait. Reprenons l'exemple que j'avais donné à l'époque:

function get_position(&$x, &$y, &$z)
	$x = get_x_position();
	$y = get_y_position();
	$z = get_z_position();
}

Et modifions cette fonction pour qu'elle retourne plutôt un array:

function get_position()
	return array(get_x_position(), get_y_position(), get_z_position());
}

Bien. Maintenant, il suffit d'utiliser list() pour affecter ces valeurs à nos variables:

list($x, $y, $z) = get_position();

Voilà. Élégant non ?