Отправляет email-рассылки с помощью сервиса Sendsay

Изучаем PHP

  Все выпуски  

Изучаем PHP Выпуск второй


Информационный Канал Subscribe.Ru


ИЗУЧАЕМ PHP
.: ЭЛЕКТРОННОЕ ПОСОБИЕ ДЛЯ "ЧАЙНИКОВ" :.

www.php.net | www.hotscripts.com | details.phpclub.ru | www.phpwizard.net
www.phpbuilder.com | www.devshed.com | php.kaliningrad.net | phpclub.net

.: ВЫПУСК ВТОРОЙ :.

.: ВСТУПЛЕНИЕ :.

Если вы помните, в прошлом выпуске мы обещали рассказать об объектах и классах. Извините, поспешили. Дело в том, что понимание смысла объектно-ориентированного программирования обычно недоступно новичкам. А вы, мы полагаем, таковыми являетесь. Поэтому в этом выпуске мы рассмотрим не менее важную тему - создание пользовательских функций.
Для тех, кто так и не видел первого выпуска рассылки, советуем посетить ее архив. По всем возникающим вопросам пишите на learnphp@mail.ru.

.: МАССИВЫ :.

В прошлом выпуске мы с вами познакомились со скалярными переменными, которые могут хранить только одно значение. Но одними такими переменными PHP не ограничиваются. В нем, как, впрочем, и в любом другом языке программирования, существует поддержка массивов. Что же это такое?
Массивы, говоря простыми словами, являются контейнерами переменных. Они могут состоять из трех элементов, а могут и из трех десятков. Если оглянуться на реальную жизнь, то массивом в ней можно считать самый обыкновенный холодильник. Элементами в этом холодильнике могут являться ветчина, бутылка газированной воды, десяток яиц, пачка масла. На таком представлении массива мы и будем строить наши примеры.
Массивы бывают индексные и ассоциативные и могут объявляться путем задания последовательности "ключ1=>значение1, ключ2=>значение2...", так и "значение1, значение2...".
Значения индексных массивов нумеруются по порядку (начиная с нуля!), поэтому для них рационально использование последовательности "значение1, значение2...".
Для ассоциативных массивов, напротив, рациональнее использовать последовательность "ключ1=>значение1, ключ2=>значение2...".
Ниже приведены примеры объявления индексного и ассоциативного массивов:

$refregerator1 = array("мясное" => "ветчина",
                       "напиток" => "газированная вода",
                       "источник_белка" => "десяток яиц",
                       "жирное" => "пачка масла");
// это был пример ассоциативного массива

$refregerator2 = array("ветчина", "газированная вода", "десяток яиц", "пачка масла");
$refregerator3 = array("0" => "ветчина",
                       "1" => "газированная вода",
                       "2" => "десяток яиц",
                       "3" => "пачка масла");
// это были примеры индексного массива

Однако существует и другой способ задания значений массива:

$refregerator4["мясное"] = "ветчина";
$refregerator4["напиток"] = "газированная вода";
$refregerator4["источник белка"] = "десяток яиц";
$refregerator4["жирное"] = "пачка масла";

И, наконец, если неизвестен наибольший ключ индексного массива, применяют такой способ:

$refregerator3[] = "килограмм бананов";

В этом случае будет определен максимальный индекс массива $refregerator (он равен 3) и добавлен элемент со следующим по счету индексом (4) и значением "килограмм бананов".
Если нужно вызвать из программы какой-либо элемент массива, укажите имя массива со знаком доллара и ключ элемента в квадратных скобках. Например:

print("Для приготовления яичницы нужны $refregerator3[2] и $refregerator3[3].");
// броузер выдаст: "Для приготовления яичницы нужны десяток яиц и пачка масла."

При работе с ассоциативными массивами приходится создавать отдельные переменные для хранения значений массива.

$_1 = $refregerator4["источник белка"];
$_2 = $refregerator4["жирное"];
print("Для приготовления яичницы нужны $_1 и $_2!");
// броузер выдаст: "Для приготовления яичницы нужны десяток яиц и пачка масла."

Выше мы сказали, что массивы являются контейнерами переменных. Однако массивы могут содержать и другие массивы - тогда такие массивы называют многомерными. Вернемся к представлению массива холодильником.
Итак, холодильник - это главный массив (массив на верхнем уровне). Но в холодильнике есть полки, которые тоже являются массивами, так как содержат несколько переменных. Чтобы лучше ознакомиться с этим типом массивов, просмотрите текст программы, приведенной ниже. Рекомендуем разобраться в вызовах элементов многомерных массивов.

.: ПРОГРАММА, ИСПОЛЬЗУЮЩАЯ МНОГОМЕРНЫЙ МАССИВ :.

<html>

<head>
<meta http-equiv="Content-Language" content="ru">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Программа, использующая многомерный массив</title>
</head>

<body>

<?php

$refregerator = array("Нижняя полка" => array("килограмм бананов",
                                              "пакет огурцов"),
                      "Вторая полка" => array("кастрюля с супом",
                                              "тарелка торта"),
                      "Третья полка" => array("банка шпротов",
                                              "банка красной икры",
                                              "консервированные ананасы",
                                              "консервированные манго",
                                              "бутерброды",
                                              "зеленый салат"),
                      "Верхняя полка" => array("сыр",
                                               "пять упаковок йогурта",
                                               "сметана",
                                               "творог"));

$_1 = $refregerator["Нижняя полка"][0];
$_2 = $refregerator["Нижняя полка"][1];
$_3 = $refregerator["Вторая полка"][0];
$_4 = $refregerator["Вторая полка"][1];
$_5 = $refregerator["Третья полка"][0];
$_6 = $refregerator["Третья полка"][1];
$_7 = $refregerator["Третья полка"][2];
$_8 = $refregerator["Третья полка"][3];
$_9 = $refregerator["Третья полка"][4];
$_10 = $refregerator["Третья полка"][5];
$_11 = $refregerator["Верхняя полка"][0];
$_12 = $refregerator["Верхняя полка"][1];
$_13 = $refregerator["Верхняя полка"][2];
$_14 = $refregerator["Верхняя полка"][3];

print("<b>Смотрим содержимое холодильника!</b><p>");
print("Нижняя полка: $_1, $_2<p>");
print("Вторая полка: $_3, $_4<p>");
print("Третья полка: $_5, $_6, $_7, $_8, $_9, $_10<p>");
print("Верхняя полка: $_11, $_12, $_13, $_14<p>");
print("На этом холодильник и закончился.");

?>

</body>

</html>

.: ПОЛЬЗОВАТЕЛЬСКИЕ ФУНКЦИИ :.

В первом выпуске рассылки мы познакомились со стандартной функцией вывода строк в броузер - print(). А вы не задумывались, как она работает? Совершенно очевидно, что она совершает некоторые действия перед тем, как вывести текст. Что же? Прежде чем изучать "нутро" функций, давайте определимся, что это такое.
Функция - это некоторые действия, совершаемые программой по какой-либо аксиоме, независимо от значений переменных и других внешних факторов. Написание функций - задача легкая, но в то же время требующая внимания, ведь в PHP ошибку может вызвать обыкновенная фигурная скобка, что сделает ВСЮ программу полностью неработоспособной. Общий синтаксис задания функций таков:

function имя_функции(передаваемые_переменные_через_запятую) {
     тело_функции;
    
return возвращаемое_значение;
}

Сначала оговоримся, что функции должны объявляться сразу после тега <?php. Если вы объявите функцию позже, это не вызовет серьезных ошибок, однако опыт показывает, что, объявляя функции в начале программы, вы оберегаете себя от неурядиц.
Итак,
имя_функции. Оно должно быть уникально во всей программе, то есть не должно быть еще одной функции с таким же именем. Однако переменная, константа или массив с именем_функции существовать может.
передаваемые_переменные_через_запятую - это переменные, над которыми нужно будет производить некоторые действия. Эти переменные не обязательно должны быть переменными программами, вы можете передать функции и какое-либо самостоятельное значение (об этом мы поговорим далее).
В
теле_функции описываются действия, которые нужно производить над переданными переменными.
И, наконец,
возвращаемое_значение - это то, что должна вывести на экран функция, проделав над переданными_переменными какие-то действия. Для примера скажем, что функция print() возвращает строку, введенную в скобки. Рассмотрим фрагмент:

function mathem($num) {
     $a = ($num * 5) / 2;
     return $a;
}
$result = mathem(13111987);
print("$result");

В приведенном примере функции передается не существующая переменная, а число "13111987". Функция умножает число на 5 и результат делит на 2. Результат (возвращенное функцией mathem() значение переменной $a) присваивается переменной $result и выводится на экран (32779967,5).
Умело написанные функции могут стать настоящими помощниками при работе - не будет приходиться по сто раз набирать один и тот же код - а он ведь увеличивает программу в объеме. Вы можете хранить свои функции в файле с расширением
.func, например my_functions.func, а потом ссылаться на этот фал из программы:

include("my_functions.func");

PHP имеет богатый запас стандартных функций, так что для ваших программ будет раздолье. В последующих выпусках рассылки мы будем рассматривать различные стандартные функции языка. А на сегодня это все.

.: ПЛАН :.

Итак, второй выпуск нашей рассылки подошел к своему логическому завершению. Безусловно, сегодня вы научились если не многому, то очень важному - тому, без чего программирование - пустой звук. В следующем выпуске:

  • Управляющие структуры

  • Работа со строками

Главное - не забывайте писать, если вам что-то неясно! До встречи через неделю!

Преподаватель: Юткин А.А.


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное