Funcția în PHP

Funcțiile definite de utilizator

Care sunt caracteristicile? Pentru a răspunde la această întrebare, trebuie să înțelegem că, în general, sunt funcții. În programare, la fel ca în matematică, o funcție este o cartografiere a argumentelor sale cu privire la setul de valori sale. Aceasta este funcția pentru fiecare set de valori ale argumentului returnează orice valori care sunt rezultatul muncii sale. De ce avem nevoie de o funcție, încercăm să explicăm cu un exemplu. Un exemplu clasic al unei funcții în programare - o funcție care calculează factorialul unei valori. Asta este, vom da un număr, și ne întoarce la factorial sale. Nu este nevoie pentru fiecare număr, pe care dorim să obțineți factorialul, repetați același cod - pur și simplu apel funcția cu un argument al acestui număr.

o funcție pentru a calcula numărul de naturale

Astfel, atunci când desfășurăm acțiuni în care a trasat dependența unor date, și în același timp, ar putea fi necesar pentru a efectua aceleași acțiuni, dar cu alte date originale, este convenabil să se folosească funcțiile mecanismului - să emită o acțiune bloc ca o funcție a corpului. și modificarea datelor - ca și parametrii săi.

Cum suna o funcție? Indică numele funcției în lista de paranteze valorile parametrilor săi, dacă este cazul:

Când se poate apela funcția? S-ar părea o întrebare ciudată. Funcția poate fi accesată după determinarea acestuia, adică orice program în linia de mai jos funcția f_name) bloc (. În php3 a fost într-adevăr a fost. Dar, în PHP4 este nici o astfel de cerință.
Lucru este, interpretul procesează codul rezultat. Singura excepție este funcția definită în mod condiționat (în interiorul situațiilor condiționate sau alte funcții). Când funcția este determinată, astfel încât trebuie să fie precedată de definiția apelul.

Dacă funcția este definită o dată în program, suprascrie sau eliminați-o mai târziu, nu poți. În ciuda faptului că numele funcției sunt sensibile la majuscule, este mai bine pentru a apela o funcție cu același nume, pe care ea a fost dată în definiția.

Să luăm în considerare argumentele funcțiilor, scopul și utilizarea acestora.

argumentele funcției

Fiecare funcție poate fi, așa cum am spus, lista de argumente. Cu aceste argumente trecut la funcția de informații diferite (de exemplu, valoarea numărului, care trebuie să se calculeze factoriale). Fiecare argument este o variabilă sau o constantă.

Utilizarea argumentelor aduse datelor funcționale pot fi transmise în trei moduri diferite. Acest argument care trece prin valoarea (implicit), link-ul și stabilirea argumentele implicite. Luați în considerare aceste moduri
mai mult.

Când argumentul trecut la funcția de valoare, modificați valoarea argumentului în funcția nu afectează valoarea sa în afara funcției. Pentru a activa funcția de a modifica argumentele sale, acestea trebuie să fie transmise prin referință. Pentru a face acest lucru, în definiția denumirii argumentului ar trebui să scrie ampersand „“

În funcție, puteți determina valorile argumentelor utilizate în mod implicit. La valoarea implicită trebuie să fie o expresie constantă, nu o variabilă, și nu reprezentant al unei clase sau a apela alte funcții.

Avem o funcție care creează un mesaj informativ, a cărui semnătură variază în funcție de valoarea parametrului a trecut la ea. Dacă acest parametru nu este specificat, se utilizează semnătura „Comitetul de organizare“.

Dacă funcția de mai mulți parametri, atunci aceste argumente, care sunt setate la valorile implicite să fie scrise după ce toate celelalte argumente în definiția funcției. În caz contrar, apare o eroare în cazul în care aceste argumente vor fi omise atunci când
Funcția de apel.

Dacă vom scrie acest lucru:

Rezultatul va fi:

liste de argumente de lungime variabilă

În PHP4, puteți crea funcții cu un număr variabil de argumente. Asta este, vom crea o funcție, fără a ști dinainte cât de multe argumente va provoca. Pentru a scrie o astfel de funcție este nu este necesară o sintaxă specială. Totul se face cu ajutorul funktsiyfunc_num_args built-in (). func_get_arg (). func_get_args ().

Funcția func_num_args () returnează numărul de argumente trecut la funcția curentă. Această funcție poate fi utilizată numai în definiția unei funcții personalizate. În cazul în care va fi din funcție, interpretul va da
avertisment.

Funcția func_get_arg (număr întreg nomer_argumenta) returnează lista de argumente a trecut la argumentele funcției
numărul de ordine specificat în parametrul nomer_argumenta. Argumentele funcției sunt luate în considerare, pornind de la zero. Ca func_num_args (). Această funcție poate fi utilizată numai în definiția unei funcții.

Nomer_argumenta nu poate depăși numărul de argumente trecut la funcția. În caz contrar, un avertisment este generat, iar func_get_arg funcția () va returna False.

Creați o funcție pentru a verifica tipul de date argumentelor sale. Noi credem că testul este de succes, dacă primul argument al funcției - este un număr întreg, al doilea - un șir de caractere.

Funcția func_get_args () returnează o matrice care constă dintr-o listă de argumente trecut la funcția.
Fiecare element de matrice corespunde unui argument transmis funcției. În cazul în care este utilizat în afara funcției definite de utilizator, un avertisment este generat.

Rescrie exemplul anterior, folosind această funcție. Vom verifica dacă fiecare argument chiar întreg trecut la funcția de:

După cum se poate observa, func_num_args combinație () funcții. func_get_arg () și func_get_args () este utilizat pentru funcția poate avea o listă variabilă
argumente. Aceste caracteristici au fost adăugate numai în PHP 4. În php3 pentru a obține un efect similar poate fi folosit ca argument pentru o matrice de funcții. De exemplu, în acest fel puteți scrie un script care verifică dacă fiecare funcționează parametru întreg impar:

Folosind variabile într-o funcție

variabilele globale

Pentru a utiliza în cadrul funcției de variabile sunt definite în afara acestor variabile trebuie să fie declarate ca fiind la nivel mondial. În acest scop, corpul funcției trebuie să listeze numele lor după cuvântul cheie la nivel mondial. $ Var1 la nivel mondial, $ var2;

Aceasta înseamnă, de exemplu, că
îndepărtarea $ var1
Nu se șterge variabila globală $ GLOBALS [ „var1“].

variabile statice

valorile de returnare

toate
funcțiile enumerate mai sus ca exemple, orice efectuate
acțiuni. În plus față de aceste acțiuni, orice funcție poate reveni atât
rezultatul la orice valoare. Acest lucru se face prin
a reveni declarație.
Valoarea returnată poate fi de orice tip, inclusiv liste și obiecte.
În cazul în care interpretul întâlnește o revenire de comandă
în corpul funcției. ea
se oprește imediat executarea acestuia și trece la linia de
în cazul în care funcția a fost numit.

De exemplu,
formează funcția care returnează vârsta persoanei. În cazul în care o persoană nu
A murit, vârsta este considerată a fi în raport cu anul curent.

În acest exemplu, nu poți
Funcția de utilizare retur
și pur și simplu înlocuiți-l cu ecou funcție de ieșire.
Cu toate acestea, dacă toți am face același lucru, astfel încât funcția returnează unele
Valoarea (în acest caz, vârsta persoanei), programul putem
atribuie orice variabilă acestei funcții:

Ca urmare, funcția de lucru
poate fi
Acesta a revenit doar o singură valoare. Mai multe valori pot fi obținute,
Dacă se returnează o listă de valori (matrice unidimensională). Să presupunem că vrem să
obține vârsta deplină a persoanei de a doua zi.

Când revine funcției
valori multiple pentru prelucrarea în program, este convenabil de a folosi
lista de limbaj de design (),
care permite valori de o singură acțiune le atribuiți multiple
variabile. De exemplu, în exemplul anterior, lăsând neschimbat
Funcția, procesa valoarea returnată poate fi după cum urmează:

În general, lista structura ()
Acesta poate fi folosit pentru a
atribuie valori elementelor variabile de orice matrice.

Link-uri de returnare

funcţii variabile

PHP susține conceptul de variabile
funcții.
Acest lucru înseamnă că, în cazul în care un nume de variabilă se termină cu paranteze,
PHP va căuta o funcție cu același nume și încearcă să-l execute.

In acest exemplu, funcția Show_text
pur și simplu display-uri
o linie de text. S-ar părea, ce să facă pentru a crea o separat
funcție în cazul în care există o funcție specială ecou ().
Faptul că funcționează, cum ar fi ecou (). imprimare (),
unset (). includ ()
etc. nu trebuie
utilizate ca variabile
funcții. Asta este, dacă vom scrie:

interpretul afișează o eroare:

Prin urmare, pentru a
utilizați oricare dintre caracteristicile enumerate mai sus ca variabilă
funcție. nevoie
a crea funcția proprie, pe care am făcut-o în exemplul anterior.

(built-in) Funcții interne

Vorbind despre caracteristicile definite
utilizatorul încă nu se poate spune câteva cuvinte despre built
funcții. C
unele dintre funcțiile încorporate,
cum ar fi echo (). imprimare (). data (),
includ (). avem
îndeplinite. De fapt, toate aceste funcții, cu excepția datei (),
este limba
structuri. Acestea sunt incluse în nucleul PHP și nu necesită nici un
opțiuni și module suplimentare. Data () funcția
De asemenea, o parte din nucleul PHP și nu necesită configurare. Dar există o funcție,
pentru care doriți să instalați diverse biblioteci și
conectați modulul corespunzător. De exemplu, utilizarea funcțiilor
de lucru cu o bază de date MySql
trebuie să fie
compila PHP cu suport pentru această extensie. Recent,
cele mai comune extensii și funcțiile lor respective
incluse inițial în PHP, astfel încât acestea să poată fi operate fără
orice interpret suplimentar a fost setarea.

soluționarea problemei

rechemare
ceea ce este problema. Dorim să scrie o interfață care să permită
crea html forme. Utilizatorul selectează ce articole și în ceea ce
suma pe care doriți să creați, acesta vine cu numele, și programul nostru
se generează o formă dorită.

împărţim
Sarcina în mai multe sub-sarcini: Selectați tipurile de elemente de intrare și a lor
se ridică, creând nume de elemente de intrare și prelucrarea
date, și anume Generarea formează în mod direct. Prima sarcină este de ajuns
este simplu: trebuie să scrie forma corespunzătoare, cum ar fi similară
de mai jos (task_form.html):

Când vom scrie în numele elementului
formă, de exemplu, tipurile [],
Acest lucru înseamnă că numele său - următorul element al tipurilor de matrice.
Asta este, noi mai întâi
element de formă ( „șir de text de intrare„)
tipuri vor fi numite [0]
iar a doua (zona de text) - tipuri [1].
Task_form.html browser-
Se va arata ceva de genul:

Fig. 1. Formularul de selectare
Elementele generate și cantitățile acestora

după
date trimiterea acestui formular, vom obține informații despre ce elemente
și cât de multe elemente de fiecare tip care urmează să fie creat. Următorul script
Acesta solicită numele acestor elemente:

Să presupunem că,
aveți nevoie pentru a crea două elemente de tip „șir de text“
și un element de tip
„Zona de text“, după cum sa menționat în formularul de mai sus.
Apoi ask_names.php script-
Acesta va procesa într-un mod pe care o vom primi formularul de mai jos:

Fig. 2. Formularul de introducere
Nume elemente create

Rezultatul acestei
script cu datele de intrare de mai sus, va fi forma următoare:

Fig. Formularul 3. EXEMPLU
generate de programul nostru