Создание и вызов функций, принимающих аргументы

Хотя разработать такую простую функцию, как была описана в примере выше,
весьма полезно, создать функцию, принимающую данные в виде параметров
и соответствующим образом их обрабатывающую, еще лучше. То, что прини
мает функция, называется аргументом. Количество аргументов, которые может
принять функция, не ограничено. Мы уже обращали внимание на концепцию
аргумента: функция print () принимает строку как аргумент, а затем посылает
ее в браузер.

Синтаксис написанияфункции, принимающей аргументы, выглядит следу
ющим образом:

function FunctionName ($Argumentl, $Argument2 и т.д.)
statement(s);
}

Аргументы представлены в форме переменных, которым присваивается
значение, посылаемое в функцию, когда ее вызывают. Функции, принимающие
аргументы, вызываются так же, как и функции без аргументов. Однако необхо
димо помнить, что требуется передать соответствующее количество аргумен
тов. Это можно сделать либо с помощью передачи переменных:

FunctionName ($Variablel, $Variable2 и т . д ) ;

либо поместив значения в кавычки:

FunctionName ("Valuel", "Value2" и т . д ) ;

А вот и еще один из возможных вариантов:

FunctionName ($Variablel, "Value2" и т.д);

Обратите внимание на следующее: аргументы передаются строго в порядке
поступления, то есть первое значение в функции равно первому значению
в строке вызова, второе второму и т.д. Имена аргументов функции и переда
ваемых в нее параметров никак не связаны.

Это справедливо и для случаев, когда значение не было передано вовсе.
В таких случаях считается, что значение не определено, и используется специ
альное значение null. Это не математический нуль, который сам по себе явля
ется значением, а именно неопределенное значение. То же самое происходит,
если функция принимает четыре аргумента, а передано только три четвер
тый аргумент будет не определен.

Чтобы показать работу функций, принимающих аргументы, обратимся
к странице hello.php (глава 6). Поместим код приветствия в простую функцию,
которая принимает аргумент, имя пользователя.

Выполнение действия

  1. Откройте файл hello.php в текстовом редакторе (листинг 9.3).
    Листинг 9.3 т Существующая страница hello.php создает привязанное ко
    времени суток приветствие.

  2. 1 <HTML>
    2 <HEAD>
    3 <TITLE>Ifelseif Conditionals</TITLEx/HEAD>
    4 <BODY> '
    5 <?php
    6 if ($Username) {
    7 print ("Good ");
    8 if (date("A") == "AM") {
    9 print ("morning, ") ;
    10 } elseif ( ( dateC'H") >= 12 ) and ( date("H") < 18 ) ) {
    11 print ("afternoon, ");
    12 } else {
    13 print ("evening, ");
    14 } // Закрытие if даты.
    15 print ("$Username");
    16 print ("!n");
    17 } else {
    18 print ("Please log in.n");
    19 } // Закрытие if имени пользователя. •
    20 ?>
    21 </BODY>
    22 </HTML>

  3. Начните с открывающего PHPтэга <?php, затем возьмите строки 716 из
    исходного сценария (листинг 9.3) и поместите их в функцию в самом на
    чале программы.

  4. function GreetUser ($TheUser) {
    print ("Good " ) ;
    if (date("A") == "AM") {
    print ("morning, ");
    } elseif ((date("H")>12) and (date("H")<18)) {
    print ("morning, ") ; •
    } else {
    print ("evening, ");
    } // Закрытие if даты,
    print ("$TheUser");
    print ( " ! n " ) ;
    } // Конец функции GreetUser.

    Мы только дали функции имя. Сама же она состоит из кода, используемого
    ранее. Переменная $TheUser будет получать значение $Username, посылаемое
    в функцию при ее вызове (см. строку 21 листинга 9.4)

    .

  5. Закройте PHPраздел и создайте HTMLзаголовок.
  6. ?xHTMLxHEADxTITLE>The GreetUser Function:/TITLEx/HEADxBODY>

  7. Снова откройте PHPраздел и поместите туда условную конструкцию i felse,
    а также вызов новой функции.

  8. <?php
    if ($Username) {
    GreetUser ($Username); // Вызов функции.
    } else {
    print ("Please log i n . n " ) ;
    } // Закрытие if имени пользователя.,

    Условная конструкция if ($Username) используется здесь для того, чтобы
    функция вызывалась, только если существует, переменная $Username.

  9. Закройте РНР и HTML.

  10. ?></BODYx/HTML>

  11. Сохраните сценарий (листинг 9.4), загрузите его на сервер и протестируй
    те в браузере (рис. 9.2). Не забудьте отправить в сценарий значение име
    ни пользователя, добавив его к адресу URL или через HTMLформу. В про
    тивном случае вы получите результат, подобный тому, что представлен на
    рис. 9.3.
  12. Листинг 9.4 т Здесь показана функция, которая принимает аргумент, пере
    даваемый в нее при вызове. Функция вызывается, только если переменная
    $Username имеет значение.


    1 <?php
    2 function GreetUser ($TheUser) {
    3 print ("Good ");
    4 i'f (date("A") == "AM") {
    5 print ("morning, ") ,
    6 } elseif ((date("H")>12) and (datef"H")<18)) {
    7 print ("morning, ");
    8 } else {
    9 print ("evening, ");
    10 } // Закрытие if даты.
    11 print ("$TheUser");
    12 print ("!n");
    13 } // Конец функции GreetUser.
    14 ?>
    15 <HTML>
    16 <HEAD> '
    17 <TITLE>The GreetUser Function</TITLEx/HEAD>
    18 <BODY> ' • .
    19 <?php
    20 if ($Username) {
    21 . GreetOeer ($Useniame); // Вызов функции.
    22 } else {
    23 print ("Please log in.n");
    24 } // Закрытие if имени пользователя.
    25 ?>
    26 </BODY>
    27 </HTML>

    В главе 13 говорится о том, как помещать определенную информацию во внешние
    файлы (их можно будет использовать в нескольких сценариях). Часто внешний
    файл самое удачное место для хранения функций, таких как GreetUser. В таком
    случае они доступны из любого раздела сайта.
    Если вы посылаете число в функцию как аргумент, оно необязательно должно быть
    заключено в кавычки, как строка. С другой стороны, не повредит использовать
    кавычки для передачи аргументов.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: