Функции – небольшие подпрограммы, многократное использование которых значительно сокращает код, вынося повторяющиеся участки в отдельный блок. Примеры встроенных функций PHP: count(), strtoupper(), trim(), floatval(). В этом уроке мы научимся создавать собственные функции.
Создание функций
Для создания функции используется ключевое слово function, за которым следует имя функции (любое, без специальных символов), круглые скобки и фигурные скобки. Внутри круглых скобок указываются параметры, передаваемые функции. Фигурные скобки ограничивают тело функции – код, выполняемый при её вызове.
function info() {
echo "Info printed\n";
}
Функция выполняется только при вызове по имени с круглыми скобками:
info(); // Вывод: Info printed
info(); // Вывод: Info printed
info(); // Вывод: Info printed
Передача параметров
Функции могут принимать параметры, используемые внутри функции как обычные переменные.
function info($param) {
echo $param . " by\n";
}
info(123); // Вывод: 123 by
info("fellow"); // Вывод: fellow by
info(3.14); // Вывод: 3.14 by
Можно передавать любое количество параметров, разделяя их запятыми:
function mass($x, $y) {
$rez = $x + $y;
echo $rez . "\n";
}
mass(4, 6); // Вывод: 10
Функции могут вызывать друг друга:
function mass($x, $y) {
$rez = $x + $y;
info($rez);
}
mass(4,6); // Вывод: 10 by
mass(2,8); // Вывод: 10 by
Возвращение значения
Функция может возвращать результат с помощью ключевого слова return. Например, функция count() возвращает количество элементов в массиве.
function mass($x, $y) {
$rez = $x + $y;
return $rez;
}
$rs1 = mass(5, 5);
$rs2 = mass(2, 8);
info($rs1); // Вывод: 10 by
info($rs2); // Вывод: 10 by
Практический пример: сумма элементов массива
Функции полезны для вынесения повторяющегося кода. Например, функция для подсчета суммы элементов массива:
function sumArray($arr) {
$sum = 0;
foreach ($arr as $value) {
$sum += $value;
}
return $sum;
}
$array1 = [1, 2, 3];
$array2 = [4, 6];
echo sumArray($array1) . "\n"; // Вывод: 6
echo sumArray($array2) . "\n"; // Вывод: 10
Область видимости переменных
Переменные, объявленные вне функции, являются глобальными – видимыми во всей программе. Переменные внутри функции – локальные – видимые только внутри функции.
$x = 10;
function infoM() {
$x = 0;
echo $x . "\n"; // Вывод: 0
global $x;
echo $x . "\n"; // Вывод: 10
$x = 5;
echo $x . "\n"; // Вывод: 5
}
infoM();
echo $x . "\n"; // Вывод: 5
Для доступа к глобальной переменной внутри функции используется ключевое слово global.
Статические переменные
Статические переменные сохраняют свое значение между вызовами функции. Ключевое слово static:
function click() {
static $count = 0;
$count++;
echo $count . ".\n";
}
click(); // Вывод: 1.
click(); // Вывод: 2.
click(); // Вывод: 3.
Функции – мощный инструмент в PHP, позволяющий структурировать код, сокращать его и повторно использовать фрагменты. Понимание области видимости переменных важно для правильного функционирования программ.