Функция в PHP

Дефинирани от потребителя функции

Какви са функциите? За да отговорим на този въпрос, трябва да се разбере, че като цяло са функции. В програмирането, както в областта на математиката, функция е картографиране на аргументите си на снимачната площадка на неговите ценности. Това е функцията за всеки набор от стойности на аргумента върне някакви стойности, които са резултат от нейната работа. Защо имаме нужда от една функция, ние се опитваме да обясним с пример. Класически пример на функция в програмирането - функция, която изчислява факториела на стойност. Тоест, ние му номер, и това ни връща към своята факториел. Не е необходимо за всеки номер, който искаме да получим факториела, повторете същия код - просто извикайте функцията с аргумент на този номер.

функция за изчисляване на броя на природния

По този начин, когато се извършват действия, в който проследи зависимостта на някои данни, и в същото време, може да се наложи да изпълнява същите действия, но с другите първоначалните данни, че е подходящо да се използват функциите на механизма - за издаване на действие за блокиране, като функция на организма. и промяна на данните - като параметрите му.

Как извикате функция? Показва името на функцията в скоби списък на стойностите на параметрите му, ако има такива:

Когато можете да се обадите на функцията? Тя ще изглежда странен въпрос. Функцията може да бъде достъпен след това определяне, т.е. всяка програма в линията долу функция f_name () блок. В PHP3 беше в действителност. Но в PHP4 няма такова изискване.
Работата е там, преводачът обработва получения код. Единственото изключение е функцията определено условно (вътре условни конструкции и други функции). Когато се определя функцията, така че тя трябва да бъде предшествано от определението за неговото обаждане.

Ако функцията се определя веднъж в програмата, отмени, или да я премахнете по-късно, не можете. Въпреки факта, че имената на функциите регистърът на буквите, по-добре е да извикате функция със същото име, която е била дадена в определението.

Нека разгледаме аргументите на функции, тяхното предназначение и използване.

аргументи на функция

Всяка функция може да бъде, както казахме, списъкът с аргументи. С тези аргументи подадени функция различна информация (например, стойността на числото, което трябва да се изчисли факториел). Всеки аргумент е променлива или постоянна.

Използване на аргументи в данните за функция могат да се предават по три различни начина. Този аргумент, минаваща по стойност (по подразбиране), връзката и определяне на аргументи по подразбиране. Помислете за тези начини
повече.

Когато аргумент на функцията по стойност, промените стойността на аргумента, в рамките на функция не оказва влияние върху стойността му извън функцията. За да активирате функцията да променя своите аргументи, те трябва да бъдат предадени по референция. За да направите това, при определянето на името на аргумент трябва да напишете амперсанд "."

В функция, можете да определите стойността на използваните аргументи по подразбиране. На неговата стойност по подразбиране трябва да е константен израз, а не променлива, а не представител на класа или се обадете на други функции.

В момента има функция, която създава информационно съобщение, подписването на която варира в зависимост от стойността на параметъра премина към него. Ако не е посочен този параметър, тя използва подписа "Организационен комитет".

Ако функцията на няколко параметри, а след това тези аргументи, които се определят стойности по подразбиране, за да бъде написана, след като всички други аргументи в дефиницията на функцията. В противен случай, възниква грешка, ако тези аргументи ще бъдат пропуснати, когато
извикване на функция.

Ако напишете това:

Резултатът ще бъде:

списъци с променлива дължина аргумент

В PHP4, можете да създадете функции с променлив брой аргументи. Това означава, че ние създаваме функция, без предварително да се знае колко аргументи това ще доведе. За да напишете такава функция е не се изисква специален синтаксис. Всичко е направено с помощта на вградени funktsiyfunc_num_args (). func_get_arg (). func_get_args ().

func_num_args () връща броя на аргументи подадени текущата функция. Тази функция може да се използва само в рамките на определението за потребителска функция. Ако това ще бъде от функция, преводачът ще даде
предупреждение.

func_get_arg функция (число nomer_argumenta) връща списъка с аргумент подаден аргументите на функцията
серийния номер, посочен в nomer_argumenta на параметъра. Функционални аргументи се считат, като се започва от нула. Както func_num_args (). Тази функция може да се използва само в рамките на дефиницията на функция.

Nomer_argumenta не може да надвишава броя на аргументи подадени на функцията. В противен случай, предупреждение се генерира и func_get_arg на функцията () ще върне False.

Създаване на функция, за да се провери типа данни на своите аргументи. Ние вярваме, че тестът е успешен, ако първият аргумент на функцията - е цяло число, а вторият - низ.

func_get_args () връща масив, който се състои от списък с аргументи подадени на функцията.
Всеки елемент спектър съответства на аргумент на функцията. Ако той се използва извън дефинирани от потребителя функция, предупреждение се генерира.

Препишете предишния пример, като се използва тази функция. Ще проверим дали всяка четна число аргумент на функцията:

Както може да се види, комбинация func_num_args на () функции. func_get_arg () и func_get_args () се използва за функция може да има променлива списък
аргументи. Тези характеристики са добавени само в PHP 4. В PHP3 за постигане може да се използва като аргумент на функция масив подобен ефект. Така например, по този начин можете да напишете скрипт, който проверява дали всеки нечетен функции на параметрите число:

Използване на променливи във функция

Глобалните променливи

За да се използва в рамките на функцията променливи са дефинирани извън тези променливи трябва да бъдат декларирани като глобален. За тази цел тялото на функция, трябва да се изброят имената им след глобалното ключова дума. глобалния $ var1, $ var2;

Това означава, например, че
премахване на променливата $ var1
Това не изтрива глобалната променлива $ GLOBALS [ "var1"].

статични променливи

стойности за връщане

всички
функции, изброени по-горе като примери, всеки извършват
действия. В допълнение към тези действия, всяка функция може да се върне и двамата
в резултат на всяка стойност. Това се постига чрез
върнете изявление.
Върнатата стойност може да бъде от всякакъв вид, включително списъци и обекти.
Когато преводачът срещне връщане команда
в тялото на функцията. то
веднага спира неговото изпълнение и преминава към линията на
когато функцията се нарича.

Например,
вид, функцията, която връща възрастта на лицето. Ако човек не е така
Той почина, възрастта се смята за по отношение на текущата година.

В този пример, не можете
използване връщане функция
и просто да го замени с ехото изходната функция.
Въпреки това, ако всичко, което правим едни и същи, така че функцията връща някои
стойност (в този случай възрастта на лицето), програмата можем
възлага променлива за тази функция:

В резултат на това, функцията за работа
може да бъде
Той се върна само една стойност. Няколко стойности могат да бъдат получени,
Ако го връща списък от стойности (едномерен масив). Да предположим, че искаме да
получите пълната възраст на лицето, на деня.

Когато функцията връща
множество стойности, предназначени за преработка в програмата, е удобен за използване
списък дизайн език (),
което позволява едно действие възлага стойности на множествена
променливи. Така например, в предишния пример, оставяйки без промяна
функция, обработва върнатата стойност може да бъде, както следва:

Обикновено списък структура ()
Тя може да се използва за
зададат стойности на съответните променливи елементи на всеки масив.

връзките за връщане

променливи функции

PHP подкрепя идеята за променлив
функции.
Това означава, че ако името на променливата завършва с скоби,
PHP ще търси функция със същото име и се опитва да го изпълни.

В този пример, Show_text функцията
просто дисплеи
ред от текста. Тя ще изглежда, какво да направя, за да се създаде отделна
функция, ако има функция специална ехо ().
Фактът, че функционира като ехо (). печат (),
изключено (). включва ()
и т.н. не трябва
използвани като променливи
функции. Това означава, че ако пишем:

интерпретатора показва грешка:

Ето защо, за да се
използвате всеки от характеристиките, изброени по-горе като променлива
функция. трябва
създадете свой собствен функция, която направихме в предишния пример.

Вътрешни (вградени) функции

Говорейки за функциите, дефинирани
потребителят все още не мога да кажа няколко думи за вградения
функции. C
някои от вградени функции,
като ехо (). печат (). дата (),
включва (). имаме
изпълнено. В действителност, всички тези функции с изключение на датата (),
е езикът
структури. Те са включени в ядрото на PHP и не се нуждаят от
допълнителни опции и модули. Дата () функция
също е част от ядрото на PHP и не се нуждае от конфигуриране. Но има една функция,
, за който искате да инсталирате различни библиотеки и
свързване на съответния модул. Например, за да използвате функции
работа с база данни MySql
трябва да бъде
компилирате PHP с поддръжка за това разширение. Наскоро,
най-често срещаните разширения и съответните им функции
първоначално включени в PHP, така че да може да работи без
всякаква допълнителна преводач залязваше.

решение на проблема

отзоваване
какъв е проблемът. Ние искаме да пиша интерфейс, който ще позволи на
създаване на HTML форми. Потребителят избира кои елементи и в това, което
сумата, която искате да създадете, тя идва с името, а нашата програма
се генерира желаната форма.

Ние разделяме
задача на няколко подзадачи: Изберете типа входни елементи и тяхното
е в размер, създаване на имена елемента за въвеждане и обработка на
данни, т.е. Генериране директно образуват. Първата задача е достатъчно
е проста: Вие трябва да напишете подходящата форма, като подобна
-долу (task_form.html):

Когато пишем в името на елемента
форма, например видове [],
Това означава, че името му - на следващия елемент от типовете масив.
Това означава, че за първи път
оформен елемент ( "въвеждане на текст низ")
ще бъдат наименовани видове [0]
и втората (текст областта) - видове [1].
task_form.html на браузъра
Тя ще изглежда по следния начин:

Фиг. 1. Форма за селектиране
генерирани елементи и техните количества

след
данни изпращане на тази форма ще получите информация за какви елементи
и колко елемента от всеки вид, за да бъдат създадени. Следващият скрипт
Тя пита за имената на тези елементи:

Да кажем,
трябва да създадете два елемента от тип "текстов низ"
и един елемент от типа
"Текст зона", както е отбелязано по-горе форма.
Тогава ask_names.php скрипт
Тя ще я обработва по начин, който ще получите следния вид:

Фиг. 2. Формата за въвеждане
Имена създаден елементи

В резултат на това
скрипт с входни данни, дадени по-горе, ще бъде следващата форма:

Фиг. форма 3. Пример
генериран от нашата програма