ПредишенСледващото

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

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

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

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

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

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

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

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

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

Пример 5.1. Дефиниране на функция вътре условен израз

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

Пример 5.2. Дефиниране на функция в тялото на функцията

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

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

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

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

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

Пример 5.3. Предаване по референция аргументи

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

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

Пример 5.4. По подразбиране аргумент ценности

В резултат на този сценарий е:

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

В резултат на това, ние получаваме следния скрипт работа

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

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

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

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

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

Пример 5.5. Използване func_num_args () функция

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

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

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

Пример 5.6. Функция за да се провери типа данни на своите доводи

Резултатът ще бъде следващата работа.

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

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

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

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

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

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

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

В резултат на този скрипт, получаваме:

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

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

Пример 5.8. С помощта на статична променлива

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

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

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

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

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

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

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

Пример 5.9. Използване на списък ()

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

Пример 5.10. връзките за връщане

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

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

Пример 5.11. Използването на различни функции за

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

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

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

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

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

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

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

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

Обявата 5.12. task_form.html

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


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

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

Обявата 5.13. ask_names.php

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


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

Обявата 5.14. task.php

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


Фиг. 5.3. Пример форми, генерирани от програмата

Zvernіt uwagi на dodatkovі posilannya

Yakscho ви tsіkavit.

Подкрепете проекта - споделете линка, благодаря!