Funcția în PHP și recursivitate

variabile statice

Când vom defini o funcție în variabila - este o variabilă locală.

Ie Test de trei ori funcția de apelare, vom obține de trei ori 0. variabile locale, ei trăiesc în timp ce funcția php în interior. În timp ce php nu a mers la o funcție, nu este nimic acolo. Am sunat funcția, PHP a venit, a creat o variabilă atribuie o valoare 0. Out - toate distruse, nu este nimic, variabila nu este stocat.

Dar, uneori, trebuie să vă amintiți valoarea php. Apoi vom declara o variabilă în interiorul unei funcții statice (statice $ a = 0;).

Ie php pentru prima dată, va veni, va aloca $ a = 0. creșteri variabile cu 1. Când PHP el va demola totul cu excepția funcției (NOTĂ: Această funcție nu devine global). Urmatorul va veni din nou în funcția PHP va afișa 1, apoi 2, etc.

Recomandare. Nu creați prea multe variabile globale. Toate matrice globală a tuturor variabilelor globale sunt stocate în memorie, reducând performanța. Mergând inițializarea suplimentar de variabile, confuzia în codul. Variabilele globale ar trebui să fie utilizate peste tot, fie în cerere peste tot.

Returnarea valori

De multe ori trebuie să funcționeze, nu se face ceva și a adus rezultatul final, și ea a revenit la acest rezultat. Și noi ne decidem ce să facem cu el.

Întoarcere nu numai valoarea de returnare a funcției, dar, de asemenea, completează toate într-o funcție (de exemplu, aproximativ, el încă funcționează ca o pauză), și vom ieși din această funcție.

apeluri de funcții recursive

Ie în cazul în care funcția se numește. Când aveți nevoie pentru a face o mulțime de acțiune cu modificări minime. Sau ai nevoie pentru a face același lucru, dar un număr nedefinit de ori. pentru că php nu detectează recursie infinit, există un pericol, în cicluri, pentru a obține într-o recursie infinită (hang). De aceea, PHP trebuie să rămână undeva, aveți nevoie de un anumit cod. . A se vedea exemplul de mai jos:

Cu recursie ne confruntăm în mod constant. De exemplu, Arhivator RAR, zip, nu este cusut în interiorul recurență (care au nevoie pentru a merge în folderul => în interiorul altui dosar => în interiorul altui dosar). Arborele de foldere în Windows, de asemenea, este desenat folosind recursivitate.