Библиотека программиста
Главная Форумы Рассылки Опросы Новости Добавить файл Карта сайта О проекте, контакты
Рекомендуем посетить:
aethra; амальгама переводы песен; контейнерные электростанции, продажа электростанций

PHP для начинающих Выпуск N9

Тема: Функции
Ведущий рассылки: Иванов Дмитрий

В выпуске:

  1. Написание своих функций в PHP
  2. В следующем выпуске


Написание своих функций в 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.

Собственно это вся информация о функциях. Как видите, ничего сложного здесь нет. С конкретными примерами применения функций на практике вы познакомитесь в следующем выпуске.


В следующем выпуске

В следующем выпуске я расскажу, как написать свою гостевую книгу и мы создадим с вами реально работающий скрипт. Однако для изучения этого материала вам понадобятся знания по работе с файлами и регулярными выражениями. Для этого вам нужно изучить предыдущие два выпуска.

До следующего выпуска. С уважением, Иванов Дмитрий.
Email:
dmitry@proge.info

Ведущий рассылки: Дмитрий. dmitry@proge.info

   

Главная | Форумы | Рассылки | Новости | Опросы | Добавить файл | Карта сайта | О проекте | Обратная связь

Copyright © Proge.info 2000-2006. All rights reserved.
Creating & Programming by Proge.info