к оглавлению

Функции 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 по эфирной физике.

НОВОСТИ ФОРУМАФорум Рыцари теории эфира
Рыцари теории эфира
 19.11.2019 - 17:34: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вячеслава Осиевского - Карим_Хайдаров.
19.11.2019 - 09:07: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Андрея Маклакова - Карим_Хайдаров.
18.11.2019 - 19:10: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
16.11.2019 - 16:57: СОВЕСТЬ - Conscience -> РУССКИЙ МИР - Карим_Хайдаров.
16.11.2019 - 16:53: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Марины Мелиховой - Карим_Хайдаров.
16.11.2019 - 12:16: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Игоря Кулькова - Карим_Хайдаров.
15.11.2019 - 06:45: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> РАСЧЕЛОВЕЧИВАНИЕ ЧЕЛОВЕКА. КОМУ ЭТО НАДО? - Карим_Хайдаров.
14.11.2019 - 12:35: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Светланы Вислобоковой - Карим_Хайдаров.
13.11.2019 - 19:20: ЭКОНОМИКА И ФИНАНСЫ - Economy and Finances -> ПРОБЛЕМА КРИМИНАЛИЗАЦИИ ЭКОНОМИКИ - Карим_Хайдаров.
12.11.2019 - 11:53: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Бориса Сергеевича Миронова - Карим_Хайдаров.
12.11.2019 - 11:49: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Веры Лесиной - Карим_Хайдаров.
10.11.2019 - 23:14: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Кирилла Мямлина - Карим_Хайдаров.
Bourabai Research Institution home page

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