к оглавлению

Функции PHP

Определения и вызовы функций

Функция объявляется при помощи ключевого слова function, после которого в фигурных скобках записываются различные операторы, составляющие тело функции:

function MyFunction()
{
 // операторы
}

Если функция принимает аргументы, то они записываются как переменные в объявлении функции. Аргумент функции представляет собой переменную, передаваемую в тело функции для дальнейшего использования в операциях. В случае, когда функция принимает больше одного аргумента, эти переменные разделяются запятыми:

function MyFunction($var, $var1, $var2)

Если функция возвращает какое-либо значение, в теле функции обязательно должен присутствовать оператор return:

function MyFunction()
{
  return $ret; // возвращается значение переменной $ret
}

Пример простой функции.

<?php
  function get_sum()
  {
    $var = 5;
    $var1 = 10;
    $sum = $var + $var1;
    return $sum;
  }
  echo(get_sum()); // выводит 15
?>

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

<?php
  function get_sum()
  {
    $var = 5;
    $var1 = 10;
    $sum = $var + $var1;
    echo $sum;
  }
  get_sum();
?>

Переменные $var и $var1 мы можем объявить как аргументы и в этом случае в теле функции их определять не надо:

<?php
  function get_sum($var, $var1)
  {
    $sum = $var + $var1;
    echo $sum;
  }
  get_sum(5,2); // выводит 7
?>

Переменная, содержащая значение, переданное через аргумент, называется параметром функции.

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

<?php
  function get_sum($var) // аргумент передается по значению
  {
    $var = $var + 5;
    return $var;
  }
  $new_var = 20;
  echo(get_sum($new_var)); // выводит 25
  echo("<br>$new_var"); // выводит 20
?>

Для того чтобы переменные переданные функции сохраняли свое значение при выходе из нее, применяется передача параметров по ссылке. Для этого перед именем переменной необходимо поместить амперсанд (&):

  function get_sum($var, $var1, &$var2)

В этом случае переменные $var и $var1 будут переданы по значению, а переменная $var2 - по ссылке. В случае, если аргумент передается по ссылке, при любом изменении значения параметра происходит изменение переменной-аргумента:

<?php
  function get_sum(&$var) // аргумент передается по ссылке
  {
    $var = $var + 5;
    return$var;
  }
  $new_var = 20;
  echo(get_sum($new_var)); // выводит 25
  echo("<br>$new_var"); // выводит 25
?>
к оглавлению

Знаете ли Вы, что "гравитационное линзирование" якобы наблюдаемое вблизи далеких галактик (но не в масштабе звезд, где оно должно быть по формулам ОТО!), на самом деле является термическим линзированием, связанным с изменениями плотности эфира от нагрева мириадами звезд. Подробнее читайте в FAQ по эфирной физике.

НОВОСТИ ФОРУМАФорум Рыцари теории эфира
Рыцари теории эфира
 26.02.2020 - 06:25: ЭКОНОМИКА И ФИНАНСЫ - Economy and Finances -> КОЛЛАПС МИРОВОЙ ФИНАНСОВОЙ СИСТЕМЫ - Карим_Хайдаров.
23.02.2020 - 19:17: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
23.02.2020 - 19:14: ПЕРСОНАЛИИ - Personalias -> WHO IS WHO - КТО ЕСТЬ КТО - Карим_Хайдаров.
23.02.2020 - 19:10: ЭКОНОМИКА И ФИНАНСЫ - Economy and Finances -> ПРОБЛЕМА КРИМИНАЛИЗАЦИИ ЭКОНОМИКИ - Карим_Хайдаров.
22.02.2020 - 07:52: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Ю.Ю. Болдырева - Карим_Хайдаров.
19.02.2020 - 18:24: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Андрея Фурсова - Карим_Хайдаров.
17.02.2020 - 19:50: ЭКСПЕРИМЕНТАЛЬНАЯ ФИЗИКА - Experimental Physics -> Эксперименты Сёрла и его последователей с магнитами - Карим_Хайдаров.
17.02.2020 - 19:49: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Андрея Тиртхи - Карим_Хайдаров.
17.02.2020 - 19:09: ЭКСПЕРИМЕНТАЛЬНАЯ ФИЗИКА - Experimental Physics -> Вихревые эффекты и вихревые теплогенераторы - Карим_Хайдаров.
17.02.2020 - 19:06: ЭКСПЕРИМЕНТАЛЬНАЯ ФИЗИКА - Experimental Physics -> Эксперименты Андрея Петровича Хрищановича - Карим_Хайдаров.
17.02.2020 - 18:48: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> КОМПЬЮТЕРНО-СЕТЕВАЯ БЕЗОПАСНОСТЬ ДЛЯ ВСЕХ - Карим_Хайдаров.
17.02.2020 - 18:47: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ЗА НАМИ БЛЮДЯТ - Карим_Хайдаров.
Bourabai Research Institution home page

Bourabai Research - Технологии XXI века Bourabai Research Institution