Написание своих функций в PHP
В этом выпуске будет совсем небольшой урок, который послужит основной для следующего выпуска. На самом деле следующий выпуск почти готов. Его тема - создание гостевой книги на основе предыдущих тем (работа с файлами, регулярные выражения). Однако для понимая этого урока Вам необходимо сначала изучить создание функций в PHP. Это очень простая тема, не сложнее чем, например, циклы. Однако она очень важна, поэтому я решил посвятить ей отдельный выпуск. Итак, начнем.
Мы с вами уже изучили много полезных функций PHP. Но иногда возникает необходимость в написании собственных функций. Такой случай возникает когда встречаются часто повторяющиеся части программы. Очень удобно оформить эти части как отдельную функцию и просто вызывать ее при необходимости. Сегодня я расскажу вам о том, как создаются свои функции в PHP.
Вы знаете, что функция всегда должна иметь свое имя. Также она может принимать несколько параметров, которые обрабатывает в процессе выполнения. Например, fopen принимает в качестве параметров имя файла и параметр режима. Также можно задавать параметры и в своих функциях.
Итак, давайте посмотрим, как выглядит функция в основной программе:
<?
Function show_file($f) {
echo implode(file($f),"");
}
show_file("file.txt");
?>
В примере мы описали функцию show_file($f), которая выводит на экран содержимое файла (см. выпуск N7).
Здесь служебное слово Function указывает, что мы описываем функцию. Далее указывается имя функции и в скобках параметры, которые функция получает (в нашем случае это переменная $f). Параметры могут отсутствовать, в этом случае нужно указывать просто пустые скобки: Function show_file(). Далее начинается тело функции. По сути - это отдельная маленькая программа, которая оформляется с помощью скобок {} (так же как и тело циклов). Далее в программе Вы можете использовать функцию просто вызвав ее имя.
Функции не имеют доступа к переменным основной программы. Здесь действует так называемая "область видимости переменных". Все необходимые переменные обычно передаются функции как параметры. Если же функция должна манипулировать с переменными основной программы, то для этого их необходимо описать в специальном блоке, который озаглавливается global. В нашем простом примере это выглядело бы так (переменная $f не передается как параметр, а используется из основной программы):
<?
Function show_file() {
global $f;
echo implode(file($f),"");
}
$f = "file.txt";
show_file();
?>
Как видите, мы не передаем переменную $f как параметр, а описываем ее как глобальную переменную с помощью global. Если у вас описывается несколько переменных, их нужно просто перечислить через запятую: global $a,$b,$c.
Кроме того, параметры, передаваемые функции, могут быть опущены при ее вызове. Для этого вам в описании функции нужно задать параметру начальные значения. Например: Function show_file($s="").
При этом функция может вызываться из основной программы и без указания параметра. Если он отсутствует, то ему будет присваиваться значение, указанное в описании функции. В приведенном примере функции будет передаваться пустая строка $s.
Собственно это вся информация о функциях. Как видите, ничего сложного здесь нет. С конкретными примерами применения функций на практике вы познакомитесь в следующем выпуске.