PHP уроки
ПРОСТО самая лучшая обучалка PHP!
  • Студия LPHPRU
  • Уроки PHP
  • Контакты
  • Помощь
Меню
  • PHP - с чего начать?
  • Уроки PHP
  • Функции PHP
  • Массивы
  • Denwer
  • MySQL
  • Информация
  • Dreamweaver уроки
  • JQuery уроки
  • Галерея
  • OpenCart
Календарь
Февраль (2023)
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
2728     
В продаже

  • Что нового?

    • Тест №2
    • Тест №1 для разработчиков
    • PHP 5.6 RC1
    • SQL. Как cкопировать данные одной колонки в другую, в той же таблице
    • GRUB изменить порядок загрузки OS в Linux
    • SSH - вход на сервер без ввода пароля
    • PhpMyAdmin - проблема с загрузкой большого файла на сервер
  • Комментарии

    • Hello
    • тут нечего не понятно
    • Может уже пора на WebStorm переходит...
    • Здравствуйте. 10 лет пользуюсь др...
    • Была такая проблема, решалась пе...
  • TOP-5

    • Метод POST (2945468 )
    • Привет, МИР! (910791 )
    • Метод GET (667156 )
    • Операторы (605670 )
    • Firefox уже запущен, но не отвечает... (352940 )

Пользовательские функции

Главная» Array » Пользовательские функции
PHP урок № 150
Сегодня поговорим о пользовательских функциях.

Различают два вида функций интегрированные уже в PHP и пользовательские. Как раз о последних и пойдёт речь. Пользовательские функции, как вы уже наверно догадались, есть то, что программист пишет сам по мере надобности. Удобство при использовании функций очевидно.

Во-первых структурируется код программы.
Во-вторых освобождается место, ведь в основном функции выносятся из кода проограммы, правильнее сказать они подключаются к основному обработчику с помощью конструкций include и require из внешнего файла.
Конструкция include предназначена для включения файлов в код сценария PHP во время исполнения сценария PHP.
В-третьих функия представляет собой самостоятельный кусок программы, предназнченный для выполнения определённых действий, в требуемом месте программы, после вызова функции.
Объявление функции в программе происходит с помощью ключевого слова function.
Листинг № Array - Пример пользовательская функция summa:
<?php

function summa()
{
   return 
5+5;

}

?>
С помощью ключевого слова function мы дали понять интерпретатору PHP - это тот который обрабатывает код (компилирует), что у него в ведение появилась ещё одна функция с именем summa() которую надо обслуживать. Круглые скобки после имени функции пишутся всегда, они нужны для передачи аргументов (переменных) самой функции, т.е. каких то значений с которыми она будет работать в своём теле. Тело функции это то что находится между фигурных скобок - это её внутренности, здесь и происходит обработка аргументов и выполнение любого другого сценария. В этом примере в теле функции используется оператор return он возвращает результат работы скрипта в теле функции. После того как return отправил данные, выполнение сценария заканчивается внутри функции.
Важно запомнить вызывать функцию в сценарии можно только после её обявления в том же сценарии.
Листинг № Array - Выводим значение полученное от работы функции
<?php

    
echo summa(); // 10

?>
На монитор будет выведено число 10, т.е. сумма двух пятёрок.

Интересный такой момент, сейчас мы вывели на монитор результат с помощью конструкции echo, но если в теле функции вместо оператор return вписать echo, то результат можно увидеть так:
Листинг № Array - Вывод значения на монитор непосредственно из функции
<?php

 
function summa()
 {
    echo 
5+5;

 } 

 
summa(); // 10


?>
Напомню, что два слеша обозначают строчный комментарий в языке PHP - это то что не выводится на монитор, это просто подсказки, часто очень нужные при разработки приложений. Например для описания логики работы сценария и т.п.
Теперь предложим нашей функции пару аргументов, при этом станет видно насколько удобнее и прозрачней становится работа функции
Листинг № Array - Добавляем аргументы функции
<?php 

  
function summa($a, $b)
  {

     
$result = $a+$b;
     return 
$result;

  } 

  
// и тут же вызываем функцию и выводим на монитор значение
  
echo summa(40, 60); // 100

?>
Две переменные $a и $b были переданы функции для обработки значений в этих переменных, а значения могут быть любые, в этом и проявляется динамичность и гибкость такого подхода. Т.е. мы не знаем какие значения будут по ходу выполнения программы, присвоены этим двум аргументам, но мы точно знаем что нам надо будет с ними сделать. В этом примере я использовал числа для наглядности, но так же можно и манипулировать строками.
Пример из жизни ))
Листинг № Array - Пользовательская функция Приветствие
<?php 

///// ФУНКЦИЯ ПРИВЕТСТВИЯ /////////

    
function privet()
    {
       
$h = date(H); // определяем какой сейчас час
       // от 5-и до 11-и утра, return возвращает Доброе утро
       
if ($h>=5 && $h<=11)  return "Доброе утро.  ";
       
// от 12-и до 16-и Здравствуйте
       
if ($h>=12 && $h<=16) return "Здравствуйте. ";
       
// от 17-и до 24-х часов Добрый вечер
       
if ($h>=17 && $h<=24) return "Добрый вечер. "; 
       
// от 0 до 4-х утра Доброй ночи.
       
if ($h>=0 && $h<=4)   return "Доброй ночи.  "; 
    }

       
//  выводим на монитор приветствие
       
echo privet();

?>
Функция date() в этом листинге - как раз и есть встроенная функция в PHP, она возвращает текущее время. На самом деле в PHP огромное количество встроенных функций, можно сказать на все случаи жизни.
Листинг № Array - Функция укорачивает текс до нужной длинны, и делает из него гиперссылку.
<?php

function text_dl($text)
{
      
$dl = 18;// количество символов которые надо оставить, остальные отрезать

     //  если длинна строки $text длиннее $dl
      
if(strlen($text)>$dl)
      {
         
//оставляем кусочек в $dl символов
         
$rest = substr($text, 0, $dl);     
         return 
"<a href='http:⁄⁄lphp.ru' title='Click'>".$rest."...</a>";
      }
      else
      {
      return 
$text;
      }

 
} 



$text = "А здесь должен быть самый длинный текст.
         А здесь должен быть самый длинный текст."
;

echo 
text_dl($text); // А здесь должен быт...

?>
Логика здесь простая. Функция text_dl(), в качестве аргумента принимает строку (переменная $text). Переменная $dl регулирует длину строки на выходе, т.е. 18 символов и не больше. В конструкции if присутствует ещё одна встроенная функция PHP которая непосредственно и определяет длину строки, переданную с аргументом в пользовательскую функцию text_dl() . Ниже строчка с ещё одной встроенной функцией (я ж говорил на все случаи жизни есть), substr(), она и отрезает символы строки в переменной $text, начиная с нуля и до того количества которое несёт в себе переменная $dl, т.е. 18 символов. А дальше HTML теги делают текст гиперссылкой. Такой момент, если строка будет менее 18 символов она останется не тронутой и тег a к ней не добавится.
Для чего это можно использовать, я к например использовал этот способ для размещения длинного текста в колонках таблицы, чтобы поля таблицы не разъезжалась от записей пользователей. Кусок текста преобразовывал в гиперссылку по которой если щёлкнуть появлялось окно с полным текстом.
Урок закончен
SETTER © LPHP.RU
Администрация сайта
Array
  • lphp.ru © 2009-2023