Функция в PHP и рекурсия

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

Когато дефинирате функция в рамките на променливата - това е локална променлива.

Т.е. Тест три пъти функция обажда, получаваме три пъти 0. Това локални променливи, те живеят, докато функцията PHP вътре. Докато PHP не отиде на функция, няма нищо там. Обадихме се на функцията, PHP дойде, създаде променлива, зададена стойност на 0. Out - погубиха всички, няма нищо, променливата не се съхранява.

Но понякога трябва да се помни, стойността на PHP. След това се установи, променлива в статична функция (статично $ а = 0).

Т.е. PHP за първи път ще дойде, ще присвои $ а = 0. Променливи се увеличава с 1. Когато PHP ще се разруши всичко, с изключение на функцията (ЗАБЕЛЕЖКА: Тази функция не се превърне в световен мащаб). Следваща ще дойде отново във функцията на PHP ще покаже 1, а след това 2 и т.н.

Препоръка. Да не се създават твърде много глобални променливи. Всички глобален масив от всички глобални променливи се съхраняват в паметта, намаляване на изпълнението. Отива на допълнително инициализация на променливи, объркването в кода. Глобалните променливи трябва да се използва навсякъде, да бъде в търсенето навсякъде.

Връщайки ценности

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

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

Рекурсивно извикване на функции

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

С рекурсия се сблъскваме постоянно. Например, RAR на архиватор, цип, има се шие вътре рекурсията (те трябва да отидете в папката => вътре друга папка => вътре друга папка). Дървото на папки в Windows, също е съставен с помощта на рекурсия.