Көбінесе бізге қайталауға бір әрекет көптеген бөліктерінде.

Мысалы, әдемі шығарылсын хабарлама қажет кезінде құттықтауында келуші шыққан кезде келуші сайттың тағы где-нибудь.

Үшін қайталауға бір код көптеген жерлерде, придуманы функциялары. Функциялары болып табылады негізгі “құрылыс блоктары”.

Мысалдар енгізілген функцияларды сіз көрген, бұл alert(message), prompt(message, default) және confirm(question). Бірақ жасауға болады және өз.

Хабарландыру
Мысалы хабарландыру функциялары:

function showMessage() {
alert( ‘Сәлем барлық қатысушыларға!’ );
}
Алдымен сөз кілт сөзі function, одан кейін аты функциялары, содан кейін тізім параметрлері жақшада (мысалда, жоғарыда, ол бос) және дене функциялары – код, кезінде орындалады және оны шақыру.

Жарияланған функция аты, мысалы:

function showMessage() {
alert( ‘Сәлем барлық қатысушыларға!’ );
}

showMessage();
showMessage();
Бұл код шығарады хабарлама екі есе өсті. Қазірдің өзінде мұнда көрінеді құрудың басты мақсаты функцияларды: избавление от қайталануын код.

Қажет болса ауыстыру хабарлама немесе тәсілі оның шығару – оны бір жерде: функциялары, ол оны шығарады.

Жергілікті айнымалылар
Функция болуы мүмкін жергілікті айнымалылар жарияланған арқылы var. Мұндай айнымалылар ғана байқалады ішіндегі функциялары:

function showMessage() {
var message = ‘Hi, мен – Вася!’; // жергілікті айнымалы

alert( message );
}

showMessage(); // ‘Hi, мен – Вася!’

alert( message ); // <– болады, қате, т. б. көшпелі ішінде ғана көрінеді
Блоктар if/else, switch, for, while, do..while әсер етпейді облысы айнымалылардың көріну.

Жариялау кезінде ауыспалы осындай блоктардағы, ол бәрібір көрінеді барлық функциялары.

Мысалы:
function count() {
// айнымалы, i,j болады жойылуы аяқталған соң, цикл
for (var i = 0; i < 3; i++) {
var j = i * 2;
}

alert( i ); // i=3, соңғы мәні i, онда цикл жұмыс істей тоқтатты
alert( j ); // j=4, соңғы мәні j, вычислил цикл
}
Ол маңызды емес, дәл функциялары мен қанша рет жарияланады ауыспалы. Кез келген хабарландыру срабатывает бір рет және бүкіл опцияны таңдаңыз.

Хабарландырулар ауыспалы мысалда жоғары жылжытуға болады жоғары, бұл ешқандай әсер етпейді:

function count() {
var i, j; // передвинули хабарландырулар var басына
for (i = 0; i < 3; i++) {
j = i * 2;
}

alert( i ); // i=3
alert( j ); // j=4
}
Сыртқы айнымалылар
Функциясы алады ко сыртқы айнымалы, мысалы:
var userName = ‘Вася’;

function showMessage() {
var message = ‘Hello,’ + userName;
alert(message);
}

showMessage(); // Hi, мен Вася
Кіру мүмкін емес, тек оқу емес, жазу. Бұл ретте, өйткені көшпелі сыртқы, онда өзгерістер байқалады және сыртқы функциялары:

var userName = ‘Вася’;

function showMessage() {
userName = ‘Петя’; // (1) беру сыртқы айнымалы

var message = ‘Hello,’ + userName;
alert( message );
}

showMessage();

alert( userName ); // Петя, мәні сыртқы айнымалы қайталау функциясы
Әрине, егер ішінде функцияларды, жолда (1), еді жарияланды өзіндік локальды айнымалы var userName, онда барлық өтініштер қолданған болар еді, оның сыртқы ауыспалы қалып еді өзгеріссіз.

Айнымалылар жарияланған деңгейінде скрипт деп атайды “жаһандық айнымалы”.

Мысалда жоғары ауыспалы userName – жаһандық.

Жасаңыз жаһандық ғана айнымалылар, олар шын мәнінде бар жалпы мәні үшін сіздің жобаны, ал керекті шешу үшін нақты міндеттер – болсын жергілікті тиісті функциялары.

Назар аударыңыз: неявное хабарландыру жаһандық айнымалылар!
Ескі стандартта JavaScript еді мүмкіндігін неявного хабарландырулар ауыспалы бере маңызы бар.

Мысалы:

function showMessage() {
message = ‘Привет’; // без var!
}

showMessage();

alert( message ); // Hi
Кодында жоғары ауыспалы message еш жерде жарияланбады, ал бірден беріледі. Ең алдымен, бағдарламашы жай ғана ұмытып қоюға var.

Кезінде use strict мұндай код келтірді еді қате, бірақ онсыз көшпелі құрылатын болады автоматты түрде, әрі мысалда, жоғарыда, ол құрылады емес, функциялары, сондай-деңгейінде скрипт.

Жол бермеңіз.

Бұл жерде қауіп жоқ, автоматты түрде құру айнымалы, ал бұл жаһандық айнымалы пайдаланылуы тиіс кезде шын мәнінде қажет “общескриптовые параметрлері”.

Ұмытып var бір жерде, содан кейін басқа – нәтижесінде бір функциясы кенеттен таратудың ғаламдық переменную пайдаланатын басқа. Және поди разберись, оны кім және қашан өзгертті, ең жағымды қате үшін жөндеу.

Болашақта біз жақсы танысайық негіздері JavaScript-тарауында Тұйықталу, функциялары ішінен, біз егжей-тегжейлі қарастырамыз ішкі механизмі жұмыс айнымалылар және функциялар.Қалай біз білеміз, PHP үлкен саны бар алдын ала белгілі бір функциялар. Бағдарламашы, сондай-ақ құруға және өздерінің авторлық функциялары үшін оңтайлы бағдарламасы.

Құру үшін функцияларды анықтау қажет мынадай құрамдас:

Атауы функциясы. Ол сәйкес келуі тиіс атаулары бар функциялар. Ереже жасау үшін атау функциясы үшін осындай және атауларының ауыспалы (бірақ нышаны жоқ $). Атауы функцияларды міндетті түрде көрсетілуі тиіс, бұл анонимді функция (про жасырын функциялары біз келесі сабақтарда)

Аргументтерді (параметрлерді) функциялары – онда неге тәуелді функция. Мысалы, функция abs($x) байланысты бір параметрдің $x, ал функция str_replace($a $b $c) тәуелді үш параметрлер. Бұл параметрлер беріледі денесі функциялары мен нұсқаулықтар дене функциялары мүмкін оларды пайдалану. Бірақ функциясы мүмкін емес болуы параметрлерін мүлдем.

Дене функциялары болса, қандай функция жүзеге асыратын болады. Теле функцияларды жазу керек реттілігі нұсқаулықтар, орындалатын шақыру кезінде функциялары. Функция болуы мүмкін бос емес дене.

Қайтарылатын маңызы бар қандай мән қайтарады функциясы. Мысалы, функция abs() қайтарады модуль санын, ал str_replace() қайтарады деген жол кейін жүргізілген ауыстыру. Функция қайтарып қана бір мәні (кез келген түрі). Нұсқаулық қайтару маңызы бар болып табылады соңғы теле функциялары.
Қарастырайық базалық синтаксис құру функцияларын PHP:

function someName ( [ params ] ) {
[ … ]
}

Кілт сөзі function жазылады атауының алдында функциялары. Бұдан әрі дөңгелек жақша ішінде аудару қажет дәлелдер, егер олар қажет. Сипаттау үшін дененің функциялары пайдаланылады фигуралық жақшаға алынады { }. Егер қажет болса, қайтаруға мәні болады, және оператор return, одан кейін көрсету керек мән немесе өрнек.

Мысалын қарастырайық құру функциялары. Деп атайық оның myFirstFunctionи болсын, ол тәуелді параметрлері. Ретінде дене функцияларын біз запишем оператор echo, ол шығарады кейбір жолына экран.

Осылайша, бұл функцияны шақыру кезінде, экранға шығарылатын болады жолы ‘Hello from function’. Қалай тудыруға құрылған функцияларды қарастырайық келесі сабақта.