Я также использую массивы для возврата нескольких значений, но на практике это происходит не очень часто. Если это так, обычно это разумная группировка данных, например, возвращение array('x'=>10,'y'=>10)
из функции с именем getCoordinates()
. Если вы обнаружите, что выполняете много обработки и возвращаете пакеты данных в массивах из множества функций, возможно, существует некоторый рефакторинг, который можно выполнить, чтобы распределить работу на более мелкие единицы.
Как говорится, вы упомянули:
Мне нравится идея массивов в том, что для передачи большего или меньшего количества значений вам просто нужно изменить массив, а не само определение функции.
В этом отношении другой метод, который может вас заинтересовать, - это использование функций с переменным числом аргументов. Вполне допустимо объявить функцию без параметров:
function stuff() {
//do some stuff
}
но вызовите его со всеми параметрами, которые вам нужны, чтобы задать его:
$x = stuff($var1, $var2, $var3, $var4);
Используя func_get_args () , func_get_arg () (в единственном числе) и func_num_args () , вы можете легко найти / зациклить все переданные параметры. Это работает очень хорошо, если у вас нет конкретных параметров, например, функция sum()
:
function sum()
{
$out = 0;
for($i = 0; $i < $c = func_num_args(); $i++) {
$out += func_get_arg($i);
}
return $out;
}
//echoes 35
echo sum(10,10,15);
Пища для размышлений, может быть, вы найдете ее полезной.