Функции в PHP

В программировании часто можно заметить одинаковые куски кода, которые дублируются несколько раз. Если заменить эти куски кода на одну функцию функцию, то код станет легче читать, можно будет быстрее модифицировать, а также эффективнее искать ошибки. Давайте попробуем написать собственную функцию на языке PHP. Сделаем функцию, которая будет складывать три переданных в неё числа и выдавать результат:
<?php
   function CalcSum($a = 0, $b = 0, $c = 5){
      $d = $a + $b + $c;
      return $d; 
   }
   
   $x = 2;
   $y = 3;
   $z = 4;
   $m = CalcSum($x, $y, $z);

   echo $m; // результат '9'
?>
Разберём пример сверху вниз. На второй строчке задаётся функция CalcSum. Название у функции может быть любое. Оно может содержать только латинские буквы и цифры. Обычно названия функций делают такими, чтобы можно было догадаться, что они делают: CalcSum = Calculation (вычисление) + Sum (сумма).
Функция должна задаваться до её первого вызова. Это означает, что в примере нельзя написать строчку $m = CalcSum($x, $y, $z); выше, чем строчку function CalcSum( ... ){. Иначе PHP скажет, что не знает функцию CalcSum, и выдаст ошибку
Последняя строчка в функции содержит слово return (переводится как "возврат"). Благодаря этой строчке в результате выполнения функции CalcSum возвращается значение переменной $d. И в нашем случае это значение попадает в переменную $m.

Функции CalcSum можно передать три аргумента. Если не передать все три, а к примеру, только один (первый), то для второго аргумента будет использовано значение "0", а для третьего "5". Эти значения по умолчанию зависят от того, что стоит в скобках при задании функции CalcSum($a = 0, $b = 0, $c = 5). Значениям по умолчанию могут быть не только цифры, но и строки.
Функции CalcSum($a = 0, $b = 0, $c = 5) из примера можно передать три и менее аргументов. К примеру так: CalcSum(8, 1) или CalcSum(4). Но если передать больше трёх аргументов CalcSum(7, 2, 6, 4), то PHP выдаст ошибку
Функции могут не только возвращать значения, но и писать его на экран. К примеру:
<?php
   function CalcSum($a = 0, $b = 0, $c = 5){
      $d = $a + $b + $c;
      echo 'Результат: ' . $d;
      return $d; 
   }
   $m = CalcSum(2, 3, 4);
?>
При вызове этой функции на экран будет выведена цифра "9". При этом "echo" стоит внутри функции, а не вне.

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

Попробуем продемонстрировать возможность сделать несколько return в одной функции :
<?php
   function CalcSum($a = 0, $b = 0, $c = 5){
      $d = $a + $b + $c;
      if($d < 10){
         return 0; 
      }elseif(10 < $d and $d < 20){
         return $d + 50; 
      }elseif(100 < $d){
         return 100;
      }
      return 21; 
   }
?>
Если функция небольшая и от обрыва её выполнения не получится большого прироста производительности, то можно не делать несколько return. В таком случае последнему return передают результат-переменную. Перепишем предыдущий пример для такой логики:
<?php
   function CalcSum($a = 0, $b = 0, $c = 5){
      $d = $a + $b + $c;
      if($d < 10){
         $d = 0; 
      }elseif(10 < $d and $d < 20){
         $d += 50; 
      }elseif(100 < $d){
         $d = 100;
      }
      return $d; 
   }
?>
MouseDC.ru - хостинг, виртуальный хостинг, покупка доменов, проверка доменов, WHOIS, курсы создания сайтов, вебинары по созданию, курсы разработки сайтов, доработка сайтов, сопровождение сайтов, разработка сайтов, техподдержка сайтов
Была ли эта статья полезна? Есть вопрос?
Cмотрите другие статьи: