#4. 9 php Использование списков
Primary tabs
Использование функции, которая возвращает массив данных, является одним из способов передачи нескольких значений из функции. Существует модификация этого способа, при котором используется списки переменных. Для описания списка переменных применяется системная функция list
, осуществляющая присвоение перечисленным при ее вызове переменным значений элементов массива. Для демонстрации использования этой функции взята функция array_doubler
из предыдущего раздела, которая удваивает значения элементов массива. Пусть требуется присвоить первые шесть элементов удвоенного массива переменным $first
, $second
, $third
и т. д. Этого можно достичь при помощи конструкции следующего вида:
list($first, $second, $third, $fourth, $fifth, $sixth) = array_doubler($array);
Следующий пример демонстрирует использование данного способа. Таким образом можно осуществить передачу из функции нескольких значений. Альтернативой служит передача аргумента по ссылке (см. соответствующий раздел выше).
<HTML> <HEAD> <TITLE> Использование функции list </TITLE> </HEAD> <BODY> <H1> Использование функции list </H1> <?php function array_doubler($arr) { for ($loop_index = 0; $loop_index < count ($arr); $loop_index++) { $arr [$loop_index] *= 2; } return $arr; } $array = array (1, 2, 3, 4, 5, 6); list($first, $second, $third, $fourth, $fifth, $sixth) = array_doubler($array); echo "\$first: $first<BR>"; echo "\$second: $second<BR>"; echo "\$third: $third<BR>"; echo "\$fourth: $fourth<BR>"; echo "\$fifth: $fifth<BR>"; echo "\$sixth: $sixth<BR>"; ?> </BODY> </HTML>
Рис. 1 показывает, что значения переменных присвоины корректно.
В том случае, если требуется использовать только первые три элемента массива для присвоения их значений переменным, соответствующий оператор выглядит следующим образом (лишние элементы массива, который возвращает функция, просто игнорируются):
list($first, $second, $third) = array_doubler($array); echo "\$first: $first\n"; echo "\$second: $second\n"; echo "\$third: $third\n";
Следует обратить внимание на то, что использование функции list
для формирования массива некорректно. Следующий фрагмент кода является ошибочным:
return list($arr[0], $агг[1], $arr[2], $arr[3], $arr[4], $arr[5]);
- Log in to post comments
- 223 reads