Тело функции – операторы, реализующие алгоритм ее работы — КиберПедия 

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...

Тело функции – операторы, реализующие алгоритм ее работы

2017-09-27 219
Тело функции – операторы, реализующие алгоритм ее работы 0.00 из 5.00 0 оценок
Заказать работу

return переменная или выражение;

}

 

Имя функции выбирается так же, как и имя переменной, только перед ним не ставится символ $. Недопустимо использование в качестве имени функции имен математических функций и ключевых (служебных) слов PHP.

Создадим функцию, вычисляющую сумму двух переменных:

 

function summa($x, $y) // $x, $y – формальные параметры

{

$z = $x + $y; // $z – локальная переменная

return $z; // возвращение результата вычислений

}

 

Если строки return $z в функции нет, то она ничего не вернет в вызывающую программу.

Функции располагаются, как правило, в начале программы:

 

<&php

function summa($x, $y) // $x, $y – формальные параметры

{

$z = $x + $y; // $z – локальная переменная

return $z;

}

 

$a = 3;

$b = 5;

$c = summa($a, $b); // обращение к функции

echo ‘Сумма = ‘, $c, “<BR>”; // $c=8

?>

 

Фактические параметры (исходные данные) передаются в функцию по значению. Это означает, что если внутри функции формальные параметры, соответствующие этим фактическим, изменяют свои значения, то фактические параметрыне изменяются:

 

<&php

function summa($x, $y) // $x, $y – формальные параметры

{

$x++;

$y++;

$z = $x + $y; // $z – локальная переменная

return $z;

}

 

$a = 3;

$b = 5;

$c = summa($a, $b); // обращение к функции

echo ‘Сумма = ‘, $c, “<BR>”; // $c=10

echo $a, “<BR>”; // $a=3

echo $b, “<BR>”; // $b=5

?>

Чтобы изменения параметров, выполненные внутри функции, были видны и за ее пределами, их необходимо передавать по ссылке (адресу переменной). Для этого в списке формальных параметров перед их именами ставится символ &:

 

<&php

function summa(&$x, &$y) // &$x, &$y – ссылки

{

$x++;

$y++;

$z = $x + $y; // $z – локальная переменная

return $z;

}

 

$a = 3;

$b = 5;

$c = summa($a, $b); // обращение к функции

echo ‘Сумма = ‘, $c, “<BR>”; // $c=10

echo $a, “<BR>”; // $a=4

echo $b, “<BR>”; // $b=6

?>

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

В функциях можно использовать статические переменные:

 

function self_count()

{

static $count = 0; // статическая переменная

$count++;

echo $count;

}

 

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

В PHP имя функции можно присвоить переменной, взяв это имя в кавычки. Если после имени такой переменной поставить в круглых скобках список фактическихпараметров, то эта переменная будет работать как исходная функция:

 

<&php

function summa($x, $y) // $x, $y – формальные параметры

{

$z = $x + $y; // $z – локальная переменная

return $z;

}

$name = “summa”; // переменной присвоено имяфункции

$a = 3;

$b = 5;

$c = $name($a, $b); // обращение к переменной как к функции

echo ‘Сумма = ‘, $c, “<BR>”; // $c=8

?>

Имена функций можно хранить в массивах:

 

<?php

function my_func($a)

{

return $a*$a;

}

$func_array=array

(

"sqrt",

"ceil",

"floor",

"round",

"my_func"

);

$x=3.14159265;

echo "Значение х равно $x", "<BR>";

foreach($func_array as $value)

{

echo $value, ' = ',$value($x), "<BR>";

}

echo "<BR>";

?>

На экран будет выведено:

 

Значение х равно 3.14159265
sqrt = 1.7724538498929
ceil = 4
floor = 3
round = 3
my_func = 9.869604378534

Рекурсия

В PHP поддерживаются рекурсивные вызовы функций – обращение функции к самой себе внутри себя. Приведем классический пример вычисления факториала заданного числа:

 

function factor($n)

{

if ($n == 0)

return 1;

else return $n * factor($n – 1);

}

 

Функция dumper()

В целях отладки сценариев часто бывает нужно посмотреть, что содержит та или иная переменная. Для этой цели можно использовать встроенную функцию var_dump().

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

 

//Распечатка дампа переменной на экране

function dumper($obj)

{

echo “<FONT SIZE=2><PRE>”,

htmlspecialchars(dumperGet($obj)),

“</pre></font>”;

}

//Возвращает строку – дамп значения переменной

//в древовидной форме (если это массив или объект).

//В переменной $leftSp хранится строка с пробелами,

//которая будет выводиться слева от текста.

function dumperGet(&$obj, $leftSp=””)

{

if (is_array($obj))

{

$type = “Array[“.count($obj).”]”;

}

elseif (is_object($obj))

{

$type = “Object”;

}

elseif (gettype($obj) == “boolean”)

{

return $obj? “true”: “false”;

}

Else

{

return “\”$obj\””;

}

$buf = $type;

$leftSp.= “ “;

for (Reset($obj); list($k, $v) = each($obj);)

{

if ($k === “GLOBALS”)

continue;

$buf.= “\n$leftSp$k => “.dumperGet($v, $leftSp);

}

return $buf;

}

Функция dumper() использует встроенную функцию htmlspecialchars(), которая заменяет в исходной строке символы ‘<’, ‘>’, ‘”’ на их HTML -эквиваленты &lt;, &gt; и &quot;.

Пример использования функции dumper():

<?php

$my_array = array

(

Array (1, 2, 3, 4, 5),

Array

(

“name”=>”Владимир”,

“fam”=>”Кузнецов”,

“year”=>1995,

“month”=>”май”,

“day”=>15

),


Поделиться с друзьями:

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...

Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.006 с.