Функции в php
Среда, 11 августа 2010 г.Рубрика: PHP программирование -> Функции
Метки: функции
Просмотров: 1005
Подписаться на комментарии по RSS
Функция - это не большая подпрограмма, которой передаются данные (
аргументы ) и она возвращает какой-то результат.
В php существуют стандартные функции, это функция - raund - случайное
число от и до, вот пример скрипта, в котором выводится случайное число
от 1 до 20:
<?php $a = raund ( 1, 20 ); echo $a;
В этом примере мы присвоили переменной $a значение, которое вернула нам
функция случайного числа, и по выполнению скрипта будет выводиться
случайное число.
Также есть ещё функция по определению позиции определённого символа в
тексте:
<?php $text = "абвгдеёжзийклмн"; $p = strpos ( $text, "г" ); echo $p;
Как видите из этого примера в функцию добавился в обработку аргумент,
позволяющий себя не прописывать изначально, если его нет, то он будет
равен 20. На этом всё практикуйтесь. И попробуйте создать функцию
которая обрабатывала бы минуты, то есть у Вас 2 минуты, то должно
вывестись 120 секунд.
Здесь Вы можете видеть, что функция для определения позиции символа
называется strpos, в скобках которой первой пишется переменная с
текстом, в которой нужно будет определить позицию определённого символа,
а после пишется сам символ, как число, так и буква, или что угодно,
также вместо символа можно писать переменную содержащюю этот символ.
Если выполнить этот скрипт, то на экран выведется 3, а почему 3, а не 4,
ведь буква Г стоит на четвёртой позиции, а потому что функция начинает
отсчёт с нуля, что значит, что буква А будет на 0 позиции, а
следовательно буква Г на 3.
А теперь давайте попробуем создать свою функцию.
Для начала посмотрим какое строение у функции:
<?php
function myfunc (аргументы) {
какие-то действия;
}
Сдесь функция объявляется словом function далее идёт имя функции, имя
может быть любое главное чтобы оно было целиком из английских букв и в
нём не было пробелов, пробелы можно заменить нижним подчёркиванием _ .
После названия в скобках идут аргументы, переменные которые будут
обрабатываться в функцие.
После фигурные скобки в которых будут выполняться какие-то действия над
аргументами.
Для начала давайте напишем простую функцию без аргументов:
<?php
function myfunc() {
echo "Это моя функция";
}
myfunc(); /* Выполняем функцию */
В этом примере мы функцие под именем myfunc сделали вывод текста "Это
моя функция", и просто потом объявив её мы смогли вывести этот текст, а
точнее выполнить все действия, которые были заложенны в теле функции.
А если мы захотим значение функции ( в нешем случае текст ) присвоить
переменной, тогда нужно будет вместо echo писать return - что значит
вернуть значение, и при использовании этой команды у функции будет своё
значение как у переменной, и уже после этого мы сможем присвоить
значение функции какой-то переменной.
<?php
function myfunc() {
return "Это моя функция";
}
$a = myfunc();
echo $a;
Теперь давайте немного усложним код, попробуем использовать у себя в
функцие аргументы - какие-то значения.
Представим, что у нас есть переменная $name, и нам нужно обработать её
так, чтобы вместо имени выводилось приветственное сообщение этому имени.
<?php
$name = "Стас";
function myfunc($name) {
$hello = "Привет, ";
$hello .= $name;
$hello .= "!";
return $hello;
}
$hi = myfunc($name);
echo $hi;
По выполнению этого скрипта на экране появится надпись - Привет Стас!
Как видите у нас появились аргументы, и в низу при присваивании
переменной зачение функции, в скобки мы написали обрабатываемую
переменную
А теперь представьте, что у Вас есть такая же функция, только Вы не
уверены, что у Вас будет один аргумент, и Вам надо автоматически
присвоить этому аргументу значение
<?php
$name = "Стас";
function myfunc($name, $age = 20) {
$hello = "Привет, ";
$hello .= $name;
$hello .= "! ";
$hello .= "Твой возраст - ";
$hello .= $age;
return $hello;
}
$hi = myfunc($name);
echo $hi;


Можно ли подробнее объяснить, в чем заключается полезность функции по определению позиции определённого символа в тексте и где её можно использовать?
Скажем, Вам нужно проверить насколько правильные передали данные через форму, нужно например определить есть ли в переданном тексте определённые слова, пускай Ваша форма проверяет код, то можно не писать сложные регулярные выражения, а при помощи функции pos определять есть ли в переданных данных, нужные теги...
То-есть эта функция хорошо подходит для поиска!