Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Vtoraya_chast_uchebnika_po_WWW_Okonchat_variant...doc
Скачиваний:
31
Добавлен:
27.09.2019
Размер:
6.06 Mб
Скачать

Пример 4‑14

<?php

//Описание функции

function VozvratIzmenMassiva($vhodn_massiv,$mnogit)

{

$kolelementov = count($vhodn_massiv);

for($index = 0; $index < $kolelementov; $index++)

{

$vihodn_massiv[$index]= $vhodn_massiv[$index] * $mnogit;

}

return $vihodn_massiv;

}

//Основная часть проекта

//Вариант с первым множителем

$massiv = array(1,2,3,4,5);

$mnog1 = 2;

$massiv1 = VozvratIzmenMassiva($massiv,$mnog1);

echo "Результаты с первым множителем <br>";

$i = 0;

foreach ($massiv1 as $value)

{

echo "Значение элемента массива c индексом $i: $value <br>";

$i++;

}

//Вариант со вторым множителем

$mnog2 = 3;

$massiv2 = VozvratIzmenMassiva($massiv1,$mnog2);

echo "Результаты со вторым множителем <br>";

$i = 0;

foreach ($massiv2 as $value)

{

echo "Значение элемента массива c индексом $i: $value <br>";

$i++;

}

//Использование функции list

list($firstelem,$secondelem)= VozvratIzmenMassiva($massiv,$mnog1);

echo "Результаты использования функции list <br>";

echo "Первый элемент изменённого массива = $firstelem <br>";

echo "Второй элемент изменённого массива = $secondelem <br>";

?>

Функция возвращает переданный ей, уже изменённый в результате умножения на вводимый в неё множитель, массив. Обратите внимание на то, что функция возвращает во внешние массивы значение своего внутреннего массива $vihodn_massiv[ ], делая это за счёт оператора return.

В приведенном примере показано применение функции list для присваивания двух первых значений, вычисленных внутри функции VozvratIzmenMassiva, переменным $firstelem и $secondelem.

4.4.3. Функция, возвращающая ссылки

В изучаемой теме о функциях остается рассмотреть небольшую, но интересную тему - возвращение ссылок.

Ссылки были рассмотрены в разделе 4.3.5. Там было отмечено, что для создания ссылки используется оператор &:

$value = 5;

$ref = &$value;

Здесь $ref является ссылкой на переменную $value. Изменение значения ссылки немедленно отражается на значении исходной переменной.

Для описания функции, которая использует ссылку как результат своего вызова, также необходимо использовать символ &. При этом аргумент также передаётся по ссылке. Рассмотрим пример (Пример 4-15):

Пример 4‑15

<?php

// Пример функции, возвращающей результат работы по ссылке

function &vozvrat_ssilki(&$argument)

{

return $argument;

}

$value_star = 5;

echo "Старое значение: ", $value_star,"<br>";

$value_nov = &vozvrat_ssilki($value_star);

$value_nov++;

echo "Новое значение: ", $value_nov,"<br>";

?>

Результатом работы этой функции будет следующее:

Старое значение: 5

Новое значение: 6

Еще один пример (без номера) возврата значений пользовательской функции по ссылке:

<?php

$a = 100;

/* Далее идет функция, которая возвращает ссылку */

function &s () {

global $a;

// Возвращаем ссылку на переменную $a

return $a;

}

// Присваиваем ссылку переменной $b

$b = &s();

$b = 0;

echo $a; // Выводит 0

?>