PHP для новичков: функции и область видимости

Функции – небольшие подпрограммы, многократное использование которых значительно сокращает код, вынося повторяющиеся участки в отдельный блок. Примеры встроенных функций 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, позволяющий структурировать код, сокращать его и повторно использовать фрагменты. Понимание области видимости переменных важно для правильного функционирования программ.

Что будем искать? Например,программа