Функции в 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, покупка SSL сертификатов, доработка сайтов, сопровождение сайтов, разработка сайтов, техподдержка сайтов
Была ли эта статья полезна? Есть вопрос?
Cмотрите другие статьи: