Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Введение в СУБД HyTech.doc
Скачиваний:
11
Добавлен:
01.03.2025
Размер:
2.67 Mб
Скачать

6.2 Пользовательские функции в php, функции работы с массивами и строками

Дается описание работы с пользовательскими функциями, рассматриваются функции работы с массивами,  строками и регулярными  выражениями.

6.2.1 Пользовательские функции в php, функции работы с массивами и строками Пользовательские функции

Синтаксис определения пользовательской функции:

function Имя_функции (параметр1, параметр2, ... параметрN) {   Блок_кода;   [return [значение];] }

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

Параметры пользовательских функций

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

Пример:

<?php // определим функцию function add ($par1, $par2) {   return $par1 + $par2; } // вызовем функцию $var_1 = add( 1, 2 ); // в $var_1 получили значение 3 // вызываем функцию до ее определения $var_2 = div( 15, 5 ); // в $var_2 получили значение 3.0 // определим функцию ниже по тексту function div ($par1, $par2) {   return $par1 / $par2; } // определим рекурсивную функцию function factorial ($num) {   if( $num <= 1 )   {     return 1;   }   return $num * factorial ($num - 1); } $var_3 = factorial (4); // результат 24 ?>

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

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

Пример:

<?php // пример функции с параметром, передаваемым по ссылке function ref_example ($par1, $par2, &$par3) {   // $par3 - передаем по ссылке   $par3 = $par1 * $par2;   return $par1 + $par2; } $var_1 = 10; $var_2 = ref_example( 3, 2, $var_1 ); // в $var_2 получили значение 5                                       // в $var_1 получили значение 6 // пример функции с параметрами, заданными по умолчанию function default_example ($par1, $par2 = 10, $par3 = 12) {   // $par2, $par3 - имеют значения по умолчанию   return $par1 + $par2 + $par3; } $var_1 = default_example( 1, 2, 3 ); // в $var_1 получили значение 6 $var_1 = default_example( 1, 2 );    // в $var_1 получили значение 15 $var_1 = default_example( 1 );       // в $var_1 получили значение 23 // пример функции с «неправильным» параметром по умолчанию function default_example2 ($par1 = 10, $par2, $par3) {   // $par1 - имеет значение по умолчанию   // но за ним есть еще параметры, без значений по умолчанию   return $par1 + $par2 + $par3; } $var_1 = default_example( 1, 2, 3 ); // в $var_1 получили значение 6 $var_1 = default_example( 1, 2 );    // получили сообщение об ошибке ?>