Функции в PHP

Функции в PHP

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

Встроенные функции PHP

Функция - это автономный блок кода, который выполняет определенную задачу.

PHP обладает огромной коллекцией внутренних или встроенных функций, которые вы можете вызывать непосредственно в своих PHP-скриптах для выполнения конкретной задачи, например, gettype(), print_r(), var_dump() и т.д.

Ознакомьтесь с разделом справки по PHP для получения полного списка полезных встроенных функций PHP https://www.php.net/manual/ru/functions.internal.php.

Пользовательские функции PHP

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

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

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

Создание и вызов функций

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

function functionName(){
  // Тело функции
}

Объявление пользовательской функции начинается со слова function, за которым следует имя функции, которую вы хотите создать, за которой следуют скобки () и, наконец, тело вашей функции, заключенные в фигурные скобки {}.

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

<?php
// Объявление функции
function whatIsToday(){
  echo "Сегодня " . date('l', mktime());
}
// Вызов функции
whatIsToday();
?>

Функции с параметрами

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

function myFunc($oneParameter, $anotherParameter){
  // Тело функции
}

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

Функция getSum() в следующем примере принимает два целочисленных значения в качестве аргументов и просто складывает их вместе и затем отображает результат в браузере.

<?php
// Объявление функции
function getSum($num1, $num2){
  $sum = $num1 + $num2;
  echo "Сумма чисел $num1 и $num2: $sum";
}

// Вызов функции с аргументами
getSum(10, 20);
?>

Функции с необязательными параметрами и значениями по умолчанию

Вы также можете создавать функции с необязательными параметрами - просто вставьте имя параметра, затем знак равенства (=) и значение по умолчанию, например так: <?php
// Объявление функции
function customFont($font, $size=1.5){
echo "<p style=\"font-family: $font; font-size: {$size}em;\">Hello, world!</p>";
}

// Вызов функции
customFont("Arial", 2);
customFont("Times", 3);
customFont("Courier");
?>
Как видите, третий вызов customFont() не включает второй аргумент. Это заставляет движок PHP использовать значение по умолчанию для параметра $size, равное 1,5.

Возвращение значений из функции

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

<?php
// Объявление функции
function getSum($num1, $num2){
  $total = $num1 + $num2;
  return $total;
}

// Вывод возвращаемого значения
echo getSum(5, 10); // Результат: 15
?>

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

<?php
// Объявление функции
function divideNumbers($dividend, $divisor){
  $quotient = $dividend / $divisor;
  $array = array($dividend, $divisor, $quotient);
  return $array;
}

// Инициализация переменных значениями из массива
list($dividend, $divisor, $quotient) = divideNumbers(10, 2);
echo $dividend; // Результат: 10
echo $divisor; // Результат: 2
echo $quotient; // Результат: 5
?>

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

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

Передача аргумента по ссылке выполняется путем добавления амперсанда (&) к имени аргумента в определении функции, как показано в примере ниже:

<?php
/* Объявление функции которая возводит номер в квадрат
и возвращает результат */
function selfMultiply(&$number){
  $number *= $number;
  return $number;
}

$mynum = 5;
echo $mynum; // Результат: 5

selfMultiply($mynum);
echo $mynum; // Результат: 25
?>

Понятие «область видимости переменной»

Вы можете объявить переменные в любом месте PHP-скрипта. Но расположение объявления определяет степень видимости переменной в программе PHP, то есть где переменная может быть доступна. Эта доступность называется «область видимости переменной».

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

<?php
// Объявление функции
function test(){
  $greet = "Hello World!";
  echo $greet;
}

test(); // Результат: Hello World!

echo $greet; // Вызовет ошибку
?>

Так же, если вы попытаетесь получить доступ к внешней переменной внутри функции, вы получите ошибку «undefined varible», как показано в следующем примере:

<?php
$greet = "Hello World!";

// Объявление функции
function test(){
  echo $greet;
}

test(); // Вызовет ошибку

echo $greet; // Результат: Hello World!
?>

Как видно из приведенных выше примеров, переменная, объявленная внутри функции, недоступна извне, аналогично переменная, объявленная вне функции, не доступна внутри функции. Такое разделение уменьшает вероятность того, что переменные в функции будут затронуты переменными в основной программе.

Ключевое слово global

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

<?php
$greet = "Hello World!";

// Объявление функции
function test(){
  global $greet;
  echo $greet;
}

test(); // Результат: Hello World!
echo $greet; // Результат: Hello World!

// Присваиваем новое значение переменной
$greet = "Goodbye";

test(); // Результат: Goodbye
echo $greet; // Результат: Goodbye
?>

Оставьте первый комментарий

Оставить комментарий

Ваш электронный адрес не будет опубликован.


*