Наконец-то, мы подобрались к теме создания функций в PHP . Тема эта безумно важная и, пожалуй, функции в PHP создаются очень часто. И, разумеется, создавать их Вам придётся. Напоминаю, что функция - это блок кода, который является определённым шаблоном, действие которого зависит от входных параметров. А теперь переходим к созданию и использованию функций в PHP .
Давайте с Вами напишем пример элементарной функции, которая просто печатает "Hello World ":
function printHello() {
echo "Hello World";
}
printHello();
?>
В данном примере мы создали функцию с именем "printHello " без параметров (внутри круглых скобок ничего нет), затем мы в фигурных скобок написали код функции. То есть в данном случае, мы выводим строку. За пределами функции мы её вызываем. Как видите, всё очень просто. Но цена данной функции равна нулю, хотя бы потому, что она работает всегда одинаково. Безусловно, такое бывает нужно, поэтому не надо думать, что такой пример функции вообще бессмыслен. Однако, чаще всё-таки функция требует параметра, и давайте с Вами создадим функцию, которой будем передавать строку, а затем эту строку выводить:
function printHello($str) {
echo $str;
}
printHello("Hello World!!!");
?>
Здесь мы создали функцию, но уже с параметром. И дальше значение этого параметра мы и выводим через echo . За пределами функции printHello() мы её вызываем и передаём строку "Hello World!!! ". Как видите, и тут всё просто.
И последнее, что хочется сказать, так это о параметрах по умолчанию, которые позволяют создавать функции с переменным числом параметров . Предлагаю решить такую задачу: создать функцию, которая будет принимать в качестве первого параметра массив, а в качестве второго параметра - булевскую переменную (true или false ), значение по умолчанию которой будет false :
function printArray ($arr, $bool = false) {
$str = "";
for ($i = 0; $i < count($arr); $i++)
$str .= "Элемент $i = $arr[$i]
";
if ($bool) return $str;
echo $str;
}
$a = array(15, 12, 13, 14);
printArray($a);
$str = printArray($a, true);
echo $str;
?>
Здесь смысл следующий: задача функции - формировать из массива строку, то есть просто превратить массив в строковый тип. В данном примере, самое интересное - это параметр bool , который имеет значение по умолчанию. Если она false (как по умолчанию, то есть если не указывали иного значения), то строка сразу печатается в браузере, а если передали true (как при втором вызове функции), то строка возвращается (return $str ) функцией. Вот такой простой пример на создание функций с параметрами по умолчанию .
Подсказка:
Для получения полного списка встроенных PHP функций в правой колонке нажмите кнопочку Поиск при пустой строке поиска "PHP поиск".
Если Вы хотите узнать подробное описание
с примером конкретной PHP функции
укажите её в строке PHP поиск. →
В PHP существует две основные формы функций: встроенные и пользовательские.
Для определения пользовательской функции используется ключевое слово function .
Начиная с версии PHP 4.0 можно использовать значения аргументов, подставляемые по умолчанию.
РЕЗУЛЬТАТ ПРИМЕРОВ 1-2:
Примечание: Указанный ниже код будет отрабатывать не так, как Вы возможно ожидаете. Переменная $full во всех случаях будет true.
Fun($ar, false); function fun($row, $full = true){ ... }
РЕЗУЛЬТАТ ПРИМЕРА 3:
Af = 10; bf = 6 После вызова функции: af = 16; bf = 6
Для возврата значений из функции используется оператор return . Можно вернуть несколько значений, если применить список list() .
фамилия: | $фамилия"; echo " |
имя: | $имя"; echo " |
отчество: | $отчество |
РЕЗУЛЬТАТ ПРИМЕРА 4:
В PHP можно использовать динамические функции . Это означает, что если некоторой переменной присвоено имя функции, то с этой переменной можно обращаться точно так же, как с самой функцией.
РЕЗУЛЬТАТ ПРИМЕРА 5:
Мы внутри функции funct1(); Мы внутри функции funct2();
Чтобы переменная, созданная вне функции, была доступна внутри функции, надо объявить ее глобальной с помощью инструкции global .
РЕЗУЛЬТАТ ПРИМЕРА 6:
Глобальная переменная имеет значение - 45
Чтобы переменная сохраняла свое значение между вызовами функции, нужно объявить ее статической с помощью инструкции static .
Была создана и проинициализирована переменная $ss . По отношению к функции funct() эта переменная останется локальной. При втором и последующих вызовах функции funct() инициализация игнорируется, а запоминается последнее присвоенное значение.
РЕЗУЛЬТАТ ПРИМЕРА 7:
Король гулял в парке
Король охотился
Итак, что такое функция (function)на PHP ?
Функция (function)-
это мини-программа, которая выполняет какие-то полезные действия и выдает готовый результат.
Давайте посмотрим на схемку:
Попробуем по готовому шаблону функции написать мини программу.
Готовый шаблон функции:
Припустим, нам нужно написать функцию, которая сможет подсчитать сумму чисел 5 и 2 . Смотрим на шаблон и пишем:
Разберем код
.
function suma()
- это функция с именем suma
;
echo 5 + 2;
- в теле функции мы указали, что числа 5
и 2
нужно сложить вместе (5 + 2)
;
suma();
- вызываем функцию. Вызов функции означает ее выполнение. То есть, задачка 5 + 2
должна быть выполнена и дать результат 7
.
Теперь попробуем рассмотреть функции поэтапно.
Этап
I
. Создание функции
Вспомните готовый шаблон функции:
Вот таким способом создается функция на PHP.
Давайте в теле функции напишем текст «Я рад видеть вас на блоге сайт
».
Только не забудьте: текст пишем через .
.ru
";
}
?>
Теперь нужно вызвать функцию «сайт() ».
Этап
II
. Вызов готовой функции на
PHP
Функция создана и теперь она должна быть выполнена. Для выполнения и вывода функции достаточно указать «имя функции();
»
сайт();
Это будет выглядеть вот так:
Можно это сделать и так:
Введите в браузере адрес:
Результат:
Все примеры с функциями выше были без аргументов. Что такое аргумент я вам объясню на коде:
Итак, я создал функцию с именем «сайт ». В параметрах (там, где скобки) прописал через запятую две переменные $a и $b .
Function сайт ($a , $b )
$a
и $b
– это и есть два аргумента.
echo "$a + $b = ";
– здесь я вывел на монитор текст. Результат: 5 + 5 =
echo $a + $b;
– здесь я указал функции, что переменную $a
и $b
нужно сложить вместе.
сайт (15, 5);
– вызвал функцию. Внимание: в скобках я указал два аргумента (15, 5)
, которые ждет переменная $a
и $b
. Переменная $a
получит первый аргумент – 15
, $b
– второй 5
.
Для тех, кто не понял, куда подставляется аргумент и в какой очередности, вот схема:
Итак, готовый код: