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

4.3.6. Передача аргументов в функцию по ссылке

После освоения понятия ссылки в PHP, рассмотрим подробнее использование ссылки при передаче значения в функцию.

Синтаксис такой передачи выглядит следующим образом:

<?php

function foo(&$var)

{

$var++;

}

$a=5;

foo($a); // $a и $var стали эквивалентными,

//поэтому $a здесь равно 6

Echo "$a <br>";

?>

Заметьте, что в вызове функции отсутствует знак ссылки - он есть только в определении функции. Этого достаточно для корректной передачи аргументов по ссылке.

Еще один интересный пример:

<?php

function funct(&$string)

{

$string .= 'а эта внутри.';

}

$str = 'Эта строка за пределами функции, ';

funct($str);

echo $str; // Выведется: 'Эта строка за пределами функции, а эта внутри'

?>

Аналогичный способ передачи представлен в примере Пример 4-11. При обращении к функции dobavlenie_teksta2($stroka) на самом деле происходит обращение к переменной $stroka. Точнее имена $stroka и $text относятся к одной ячейке.

Пример 4‑11

<?php

echo "Работа функциии dobavlenie_teksta1 <br>";

function dobavlenie_teksta1($text)

{

$text .= "прекрасна";

echo $text,"<br>";

}

$stroka = "Жизнь ";

dobavlenie_teksta1($stroka);

echo $stroka,"<br>";

echo "Работа функции dobavlenie_teksta2 <br>";

function dobavlenie_teksta2(&$text)

{

$text .= "прекрасна";

echo $text,"<br>";

}

$stroka = "Жизнь ";

dobavlenie_teksta2($stroka);

echo $stroka,"<br>";

?>

4.4. Организация возврата значений из функции в вызывающий её скрипт

Приводимые в этом разделе функции выводили результат, так сказать, сами из себя. Стандартные функции, использованные в других разделах, возвращали значения через своё имя или через имена других переменных. Сейчас этот механизм будет рассмотрен подробнее.

4.4.1. Функции, возвращающие единичные (скалярные) значения

Для возврата значения из функции используется оператор return, синтаксис которого представлен ниже:

return(value)

В качестве value может выступать любое выражение. Использование скобок делают оператор return похожим на функцию, хотя это не функция, так как при этом результат выражения связывается с именем функции и передаётся в вызывающий её скрипт через имя этой функции. Ну, а скобки являются вообще необязательными. Для усвоения методов возврата значения из функции в вызвавший её скрипт рассмотрим несколько вариантов, сведённых в примере Пример 4-12 (ниже текста скрипта представлен вид результата).

Из примера видно, что:

  1. можно использовать или не использовать скобки в операторе return$,

  2. из одной функции можно вызывать другую – функция, возводящая число в третью степень использует результат функции, вычисляющей квадрат числа;

  3. можно использовать функции, оформленные в виде отдельного фрагмента кода php;

  4. в скрипте php можно вызывать функцию, определение которой стоит в теле скрипта ниже (дальше) точки её вызова, однако пользоваться такой возможностью не рекомендуется, так как это может привести к затруднениям в анализе текста кода.