Funkció php és a rekurzió

statikus változók

Amikor egy függvényt definiálunk belül változó - ez egy lokális változó.

Ie Teszt háromszor hív funkció, megkapjuk háromszor 0. Ez a lokális változók, élnek, míg a php függvény belsejében. Míg a PHP nem megy a funkció, nincs ott semmi. Felhívtuk a függvény, jött, létre változó kap értéket 0-ra ki - minden megsemmisült, nincs semmi, a változó nem tárolja.

De néha meg kell emlékezni az értéke php. Aztán, hogy egy változót belsejében statikus függvény (static $ a = 0;).

Ie php először jön, kiosztja $ a = 0. Változó növekszik 1. Amikor a PHP ő lerombolja mindent, kivéve a funkciót (Megjegyzés: Ez a funkció nem lesz globális). Tovább fog jönni megint a php függvény megmutatja 1, majd a 2, stb

Ajánlás. Ne hozzon létre túl sok globális változókat. Minden globális tömb összes globális változók a memóriában tárolódnak, csökkentve a teljesítményt. Megy az extra inicializálása változók, a zavart a kódot. A globális változók kell használni mindenhol, a kereslet mindenhol.

Visszatérő értékek

Gyakran kell a funkció nem valami történik, és hozta a végeredményt, és visszatért ez az eredmény. És mi magunk eldönteni, mit tegyen vele.

Visszatérés nem csak a visszatérési értéke a funkciója, hanem kiegészíti az összes függvényen belül (azaz durván, még mindig működik, mint egy kis szünetet), és megkapjuk ezt a szolgáltatást.

Rekurzív függvény hívások

Ie ha a funkció nevezi magát. Ha szükség van, hogy egy csomó akció minimális változtatásokat. Vagy meg kell csinálni ugyanezt, de meghatározatlan számú alkalommal. mert php nem észleli a végtelen rekurzió, fennáll annak a veszélye, ciklusokban, hogy bekerüljön egy végtelen ciklus (lefagy). Ezért php kell valahol maradni, szüksége van egy bizonyos kódot. . Lásd az alábbi példát:

A rekurzió előttünk folyamatosan. Például az archiváló rar, zip, van varrva belül a rekurzió (szükséges, hogy bemegy a mappa => belül egy másik mappába => belül egy másik mappába). Fája mappák a Windows is húzunk a rekurziót.