Работа с пользовательскими функциями в PHP. Что такое параметры функции?

работа с пользовательскими функциями в php. что такое параметры функции?

Что из себя представляют функции?

PHP-скрипты выполняются последовательно сверху вниз от одной строчки к другой. Иногда одну и ту же последовательность команд необходимо выполнять несколько раз, но в разных частях скрипта. Вам может прийти на ум копировать ранее написанный код в то место, где требуется повторное выполнение. Такой подход имеет ряд серьезных проблем. К примеру, если потребуется изменить поведение участка кода, придется искать все его копии и исправлять вручную.

Для облегчения реализации повторяемости программного кода в PHP присутствует возможность создания пользовательских функций. Функция — фрагмент кода, который можно вызвать на выполнение из любой части программы. Она может принимать входящие параметры и возвращать результат.

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

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

Создание собственной функции

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

//Функция под именем "welcome" принимает один параметр
//с именем пользователя
function welcome($userName){
    //Данный код будет выполнен только при вызове функции
    $result = 'Приветствую тебя '. $userName .'!';
    echo $result;
}

Правила создания функций:

  1. Выражение должно начинаться со слова function. Это обусловлено требованиями синтаксиса PHP. Если вы забудете указать его, программный код завершится с ошибкой.
  2. Через пробел после слова function должно располагаться имя функции. Оно может содержать любое количество букв, цифр и знаков подчеркивания. Единственное условие – начинаться оно может только с буквы или знака подчеркивания. Если вы начнете имя с цифры, то программный код завершится с ошибкой.
  3. Сразу за именем функции, внутри круглых скобок, описываются параметры, которые она может принимать. Они должны отделяться друг от друга запятыми. Правила именования параметров полностью соответствуют правилам именования переменных. По сути, параметр это и есть переменная, которая будет содержать значение, переданное при вызове функции.
  4. Количество параметров не ограничено. Они могут отсутствовать полностью, для этого нужно оставить круглые скобки пустыми.
  5. После описания параметров располагаются фигурные скобки, между которыми задается программный код, требующий выполнения при вызове функции.

Вызов ранее созданной функции

Чтобы вызвать на выполнение ранее созданную функцию, необходимо составить следующее выражение «имяФункции(/* значения параметров */);». Круглые скобки после имени функции являются оператором её вызова. Значения параметров передаются через запятую, в том же порядке, как и при определении функции. Если у функции нет параметров, то скобки необходимо оставить пустыми.

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

//Функция оплаты счета принимает два параметра: имя покупателя
//и логическое значение (платит наличными или картой)
function payment($buyer, $isMoney){
    $result = $buyer. ', добрый день.';

    //Строка результата формируется исходя из метода платежа
    if($isMoney === true) {
        $result .= ' Cпасибо за оплату наличными!';
    } else {
        $result .= ' C вашего счета сняты деньги!';
    }

    //Отправляем строку с конечным содержимым в браузер
    echo $result .'<br>';
}


//Вызываем функцию, передав ей в значениях литералы
payment('Василий', true);
/*
* Результат:
* Василий, добрый день. Спасибо за оплату наличными!
*/


//Вызываем функцию, передав ей значения элементов массива
$options = [ 'name' => 'Александр', 'cash' => false ];
payment($options['name'], $options['cash']);
/*
* Результат:
* Александр, добрый день. C вашего счета сняты деньги!
*/

Параметры функции по умолчанию

Иногда возникает потребность указать, какое значение использовать, если не передан тот или иной входящий параметр функции. Для этого при создании функции после нужного параметра необходимо поставить знак «=» и желаемое значение. Оно может быть строкой, целым числом, дробным числом, пустым массивом или логическим значением.

//Функция проверки логина и пароля администратора. Имеет два
//параметра, значения которых, заданы по умолчанию
function loginCheck($password = false, $login = false){
    //Если логин или пароль не переданы, то выводим сообщение
    //об ошибке
    if($password === false || $login === false) {
        echo 'Пожалуйста введите значения логина и пароля!<br>';
    } else {
        echo 'Осуществляем проверку. Подождите пожалуйста!<br>';
    }
}

//Вызываем функцию без передачи параметров
loginCheck();
/*
* Результат:
* Пожалуйста введите значения логина и пароля!
*/


//Передаем два строковых параметра функции
loginCheck('test', 'test');
/*
* Результат:
* Осуществляем проверку. Подождите пожалуйста!
*/

Если какой либо параметр функции имеет значение по умолчанию, то его можно пропустить при вызове, в противном случае код завершится с ошибкой. Если функция имеет несколько параметров, а вам нужно оставить один из них не заполненным, то необходимо указать вместо него пустое место и поставить запятую. Это может выглядеть так «имяФункции($первое_значение,, $третье_значение);».

Последние публикации