ПредишенСледващото

Когато, в глава 2, обсъдихме използването на променливи, тя не се влияе от концепцията на полето на действие. Връщайки се към темата за променливи и да обсъдим как да работят с променливи и функции.

Обхватът на променливи и глобални променливи

Във втората част на тази глава, като се позовава на параметрите предавани на РСБ на функция, ние се отбележи, че променливите могат да се изпращат до функцията Qual stve .argumentov. Въпреки това, можете да използвате променливата на функцията, ако тя е глобална променлива. Променливата става толкова с помощта на придружаващите инструкциите на глобална. Помислете за обхвата или областта на променлива видимост. Обхватът на променлива е част от програмата, в която съществува променлива. По подразбиране, променливите, които създавате в Narii базирани сценарии, са на разположение, докато изпълнението на скрипта. Обратно, променливи редове CFE (като SOSTYPE) съществуват на сървъра от момента на стартиране верига-cheniya.

Въпреки това, функциите, създаване на нов обхват. Променливи аргументи на функция на функцията и всички променливи, определени във функцията, съществуват само в тази функция и недостъпна отвън. С други думи Е, е локална променлива с местен обхват. Подобно на външния променлива може да бъде достъпен само чрез преминаване към функцията ф като аргумент или с помощта на глобалната изявлението. Последно приближи ционни средства: "Искам променливата във функцията е същата, както от външната страна на функцията". С други думи, глобалната изявление прави локална променлива вътре обхват функция с глобалната променлива обхвата в рамките на програмата. Всички промени на глобална променлива в зависимост Ной автоматично прехвърлени към променлива със същото име, когато се използва извън функция (след извикването на функция, но ограниченото), без помощта на отчета за връщане.
Синтаксисът на световната отчет е както следва:

функция имеНаФункцията (SArgument) глобален $ променлива;
отчет (и);

Нека разгледаме, че глобализацията ни дава инструкции. Обикновена Най променлива, дори ако името на функцията е идентичен с този Ким същото име в основната програма е напълно различна структура (евентуално с различна стойност от функцията е променлива). Нека линия функцията прави прилича имеНаФункцията ($ Valuel). и функцията се определя като имеНаФункцията ($ Argumentl). В момента на сезиране на функцията PHP задава стойността на стойност $ Argumentl $ Valuel, а след това се използва за първи път в тялото на функция. Ако промените стойността на $ Argumentl вътре функция, тя няма да се отрази на стойността на $ Valuel. Ако имената на променливите случайно, то би не променят нищо: те все още са две различни променливи. Обхватът на еднократна компактни подмножества от функции, а другият извън функцията. Следователно, за да се избегне объркване, когато пишете функции, ние благоразумно използва различни имена на променливите в линията на дефиниция функция и в линията на призива й.

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

Променливите $ Цена $ TaxRate и ще бъдат пуснати в функционират като $ данъка върху разходите $ и с помощта на глобалната отчета, така че не е необходимо да ги използват като аргументи.

  • Съберете двете световни инструкциите. глобалния $ разходи;
    глобален данък върху $;

    Те "нареди" функция за използване на променливите $ $ Данъчни и икономически, които вече съществуват извън него.

  • Редактиране на останалата част от функциите, заменяйки променлива $ цена от $ разходи, $ TaxRate на $ Tah, на стойност $ TheCost на $ TOTALCOST. $ Данъчно ++; // $ Данъчно е 1.06. *
    $ TOTALCOST

    ($ Cost * $ HowMany);
    ако (($ TOTALCOST <50) AND ($Savings) ) print ("Your $$Savings will not apply because
    -В обща стойност на продажбата е в процес! \ н

    ");
    > Ако ($ TOTALCOST> = 50) $ TOTALCOST = $ TOTALCOST $ спестявания;
    >.
    $ TOTALCOST = $ TOTALCOST * $ данък;
    връщане $ TOTALCOST;

    Тъй като в момента функционира с помощта на различни имена на променливи REQ Димо подходящо променят изчисленията. За да се разбере по-добре обхвата на променливата, ние също се промени променливата $ TheCost на $ TOTALCOST. Не забравяйте, че $ TOTALCOST функция не е от типа промяна Ная като променлива със същото име, но е извън функция

  • Следващият скрипт след данъчно облагане на линия = $ 0.06; (Line 29), текущата стойност на променливата за печат. Тя ще промени хода на по-нататъшното изпълнение на скрипта. печат ( "Данъчната стойност в момента е $$ облагане. \ Н

    ");

    За да покаже, че инструкцията влиза в глобалната променлива във функция и че всички промени, изпълнявани в опциите прилагат в световен мащаб, ние ще се отпечата стойността на $ Tah преди и след извикването на функция.

  • Променете низ CalculateTotal извикване на функция (). към променливите $ Данъчни и $ себестойност, вече не се предава като аргументи.
    $ TOTALCOST = CalculateTotal ($ Количество, $ Намаление);

    Тъй като функцията сега отнема само два аргумента, прехвърлянето на четирите аргументи ще се провали.

  • Още веднъж, отпечатване на стойността на $ Tah. печат ( "След извикване на функцията, когато данъчната стойност
    Сега е $$ облагане. \ Н

    ");

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

    Обява 9.7 тона От CalculateTotal функции, необходими стойности на променливи струва $ и $ Tah, те лесно могат да бъдат включени, използвайки глобалната изявлението. Запомни променливи вече не могат да бъдат предадени като аргументи за това може да обърка програмист и да причинят някои грешки в работата на твърдението.

    Създаване стойностите по подразбиране на аргументи

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

    Като пример, да CalculatePayments () функция (вж Обявата 9.7). Тъй като размерът на месечните плащания могат да се задават до 12 по подразбиране, създаване на функция като използвате следния синтаксис:

    функционални CalculatePayments ($ сума, $ NumberPayments = "12")

    Повикване функции чрез CalculatePayments код ($ суми); не са ваксинирани деца на всеки проблем и CalculatePayments низ ($ Сумите, "4 февруари"); ще отмени стойността на променливата $ NumberPayments на със стойности по подразбиране, равна краче 12, действителната равен на 24.

    Стойността по подразбиране на аргумента се използва, когато логиката на програмата предполага определена стойност, която все още може да бъде променена. Едно към едно трябва да се помни, че аргументите си по подразбиране винаги трябва да е написан след други стандартни аргументи (тоест, без стойности по подразбиране). Това е така, защото стойността на аргумента в PHP да възложи vayutsya директно в реда на постъпването им на линията на повикване. Следователно, не е възможно да се намали стойността на първия аргумент, и да зададете Auto ром (това показва, че сте изпратили една стойност, която автоматично се дава на първия аргумент, но не и втората). Помислете за пример за това как не трябва да се обадя на функцията. Да предположим, че функцията се определя, както следва:

    функционира CalculateTotal ($ HowMany, $ Цена = "20,00", $ TaxRate = "0.06")

    Ще й се обадя с линията:

    CalculateTotal (3 "0,07");

    В същото време ние ще се определя стойността на аргумента howMany $ 3, които искат да бъдат оставени вит индекс $ Цена равна на 20,00 и надявайки се да промените стойността на $ 0.07 TaxRate. Уви, ние не излезе. Променливата $ howMany наистина luchit стойността на 3, $ цена 0.07, а $ TaxRate остане равен на 0.06. Спомням си, че ние искахме да се получи малко по-различен резултат. За да се постигне желания резултат, както следва:

    CalculateTotal (3 "20,00" "0,07");

    Сега, в светлината на това, което сме научили за стойностите на аргумента работа на Def Ханя, промяна numbers.php страница (Обява 9.7).

    Писане на функция, която използва стойностите по подразбиране

    Ако функцията CalculatePayments ((изпратени два аргумента вместо аргумент по подразбиране $ NumberPayments получават втора стойност.

  • Изтриване на двете линии в основното тяло на скрипт, който се печата * стойността на $ Tah. Те вече не са необходими.
  • Променете CalculatePayments кол () функция, така че вече не се изпращат аргументите за броя на плащанията. печат (CalculatePayments ($ TOTALCOST));

    Обадете CalculatePayments За проходите сега само $ TOTALCOST стойност като аргумент като $ NumberPayments подразбиране. Там може да се прехвърли и на стойността на $ NumberPayments, ако решително да използвате различен размер на месечните плащания.

    Обява 9,8 тона Актуализация Page numbers.php. Създаване стойностите по подразбиране във функцията на вземане на незадължителния аргумент.

    Във всички примерите в тази глава ще изпрати аргументи за дадена функция, като стойност. От това следва, че функцията е изпратено копие от стойността на променливата, а не самата променлива. Можете също така да премине аргументи за справка, позволяваща модифицираните променлива във функцията, без да прави това в световен мащаб, но това е твърде сложна тема, която не е обхваната в тази книга. Някои допълнителна информация се съдържа в приложение В.

    Различните школи използват различни конвенции за имената на аргументите на функции. От една страна, използването на функция със същото име като името на променливата, извън функцията, е по-лесно да се запомни, съответствието между променливите. От друга страна, като се използват същите имена довод в функции може да ги направи прекалено свързан с останалата част от сценария. Да кажем, и начин хибрид, в която в началото на името на функцията просто добавя малки букви е, например $ fHowMany и SfTaxRate. Някои програмисти отнасят към променливите като глобалната $ gVariable. Когато преименувате, че е важно да бъде последовател на Ним, а не да се отклонява от предварително приета логика.

  • Подкрепете проекта - споделете линка, благодаря!