Подсчет количества элементов
Лабораторная работа №6 Введение в PHP. Создание простейших скриптов. Краткие теоретические сведения PHP (PHP: Hypertext Preprocessor — «PHP: препроцессор гипертекста»; первоначально Personal Home Page Tools — «Инструменты для создания персональных веб-страниц») — скриптовый язык программирования общего назначения, интенсивно применяемый для разработки веб-приложений. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров и является одним из лидеров среди языков программирования, применяющихся для создания динамических веб-сайтов. PHP - это серверный язык создания сценариев. Конструкции PHP, вставленные в HTML-текст, выполняются сервером при каждом посещении страницы. Результат их обработки вместе с обычным HTML-текстом передается браузеру. PHP-программы состоят из простого текста, поэтому набирать их можно в любом текстовом редакторе. Популярные HTML-редакторы имеют встроенную поддержку для редактирования PHP-программ. PHP-программа должна быть отделена от обычного HTML-текста. Существует несколько стилей обрамления PHP-кода:
Так выглядит простейший смешанный документ, состоящий из HTML-текста и PHP-кода: <html> <head> <title>Документ, состоящий из HTML-текста и PHP-кода</title> </head> <body> <?php echo "А вот и PHP!<br>"; ?> Всё очень просто! </body> </html> Здесь содержится один PHP-оператор echo. Этот оператор передает строку-аргумент "А вот и PHP!<br>" в HTML-страницу, которую генерирует сервер. При этом тег <br> сделает свое дело, т.е. осуществит переход на новую строку.
Комментарии в PHP-программе могут быть трех стилей: /* Многострочный комментарийв стиле классического Си */// Однострочный комментарий в стиле С++# Однострочный комментарий в стиле PerlВ одном документе можно чередовать HTML-текст и блоки PHP-операторов сколько угодно раз. При этом все переменные, функции и классы, определенные в первом блоке, будут доступны и в последующих блоках. Основы языка PHP Константы определяются в PHP-программе с помощью функции define(). Например: define("PI", 3.1415927);После определения константа не может быть изменена. В имени константы обычно используются только заглавные буквы. Переменные Имя любой переменной в PHP начинается со знака $. Имена переменных чувствительны к регистру символов. Тип переменной не требуется задавать специально. Конкретный тип переменной устанавливается и меняется в ходе выполнения программы. PHP поддерживает восемь типов данных: · логический (принимает значения true или false); · целое число; · вещественное число с плавающей точкой; · строка; · объект; · массив; · ресурс (специальный тип); · null (специальный тип). Тип переменной можно проверить с помощью функции gettype(). <html><head> <title>Автоматическое изменение и проверка типа переменной</title></head><body><?php$t = "0";echo "t = $t -- ".gettype($t)."<br>";$t += 2;echo "t = $t -- ".gettype($t)."<br>";$t = $t + 3.5;echo "t = $t -- ".gettype($t)."<br>";$t = 5 + "5 поросят";echo "t = $t -- ".gettype($t)."<br>";$t = 5.0 + "5 поросят";echo "t = $t -- ".gettype($t);?></body></html>Результат: t = 0 -- stringt = 2 -- integert = 5.5 -- doublet = 10 -- integert = 10 -- doubleОператоры Операторы PHP напоминают общеизвестные операторы языка Си. Унарные операторы
Арифметические операторы
Оператор конкатенации Оператор конкатенации "." присоединяет правую строку к левой. <html><head> <title>Конкатенация строк</title></head><body><?php$a = "Всем";$b = $a." привет!";echo $b;?></body></html>Оператор конкатенации обрабатывает операнды любых типов как строки. Результат его выполнения всегда является строкой. Операторы присваивания
Битовые операторы Битовые операторы позволяют изменять отдельные биты целых чисел.
Операторы сравнения
Логические операторы Логические операторы отличаются от битовых тем, что работают не с числами, а с логическими значениями: TRUE и FALSE.
Логические операторы "И" и "ИЛИ" имеют два формата. Это не синонимы. Дело в том, что оператор or имеет приоритет ниже, чем ||, а and - ниже, чем &&. Таким образом, при построении сложных условных выражений можно обойтись без скобок. Однако, в таком способе указания порядка проще и запутаться. Условные операторы В языке PHP два условных оператора: if и?. Существует три типа оператора if. Первый тип - базовый условный оператор. Например: if ($a > $b) { echo "А больше Б"; }Альтернативный синтаксис оператора if: if ($a > $b): echo "А больше Б";endif;Второй тип - условный оператор if-else. Например: if ($a > $b) { echo "А больше Б"; }else { echo "А не больше Б"; }Альтернативный синтаксис оператора if-else: if ($a > $b): echo "А больше Б";else: echo "А не больше Б";endif;Третий тип - условный оператор if-elseif. Например:
Альтернативный синтаксис оператора if-elseif: if ($a > $b): echo "А больше Б";elseif ($a == $b): echo "А равно Б";else: echo "А меньше Б";endif;Условный оператор? возвращает одно из двух значений, разделенных двоеточием. Использование оператора? может сделать более компактным текст программы. Например: $text = ($a == $b)? "А равно Б": "А не равно Б";echo $text;Оператор выбора Оператор выбора switch оценивает одно выражение и в зависимости от его значения выполняет один из нескольких блоков программы. Выражение в операторе switch чаще всего бывает простой переменной. Например: switch ($a) { case 1: echo "А равно 1"; break; case 2: echo "А равно 2"; break; case 3: echo "А равно 3"; break; default: echo "А не равно ни 1, ни 2, ни 3"; }Альтернативный синтаксис оператора switch: switch ($a): case 1: echo "А равно 1"; break; case 2: echo "А равно 2"; break; case 3: echo "А равно 3"; break; default: echo "А не равно ни 1, ни 2, ни 3";endswitch;Цикл с параметром Цикл с параметром for относится к наиболее старому и заслуженному виду цикла. <html><head> <title>Цикл for</title></head><body><?phpfor ($a = 11; $a <= 19; $a++) { echo "квадрат $a равен ".($a*$a)."<br>"; }?></body></html>Альтернативный синтаксис оператора for: for ($a = 11; $a <= 19; $a++): echo "квадрат $a равен ".($a*$a)."<br>";endfor;Циклы с условием В языке PHP сущеcтвует два типа цикла с условием: · while - цикл с предусловием; · do.. while - цикл с постусловием. Оператор while оценивает значение условия и, если оно истинно, выполняет действия в фигурных скобках (тело цикла). Как только значение условия станет ложным, выполнение цикла прекращается. <html><head> <title>Цикл while</title></head><body><?php$a = 11;while ($a <= 19) { echo "квадрат $a равен ".($a*$a)."<br>"; $a++; }?></body></html>Замечание для продвинутых: сокращенная запись не сработает как ожидается: while ($a <= 19) { echo \"квадрат $a равен \".($a*($a++)).\"<br>\"; // так не работает!!! }Альтернативный синтаксис оператора while: while ($a <= 19): echo "квадрат $a равен ".($a*$a)."<br>"; $a++;endwhile;Цикл do.. while отличается от цикла while лишь тем, что истинность условия проверяется не до, апосле выполнения тела цикла.
В организации цикла могут участвовать еще два оператора: break (выход из цикла) и continue (переход на следующий шаг).
Использование массивов Основное назначение массивов в PHP - организация групп связанных значений. Каждый элемент массива имеет индекс (ключ) и значение. Индекс элемента массива указывается в квадратных скобках после имени массива. Для того, чтобы обратиться к пятому элементу массива $array1, надо написать: $array1[5]Помните, что по умолчанию массив начинается не с первого элемента, а с нулевого. Индекс может быть как числом, так и текстовой строкой. Массив со строковыми индексами называют ассоциативным, а сами индексы - именами элементов. Например, цены на товары хранятся в ассоциативном массиве $prices, индексами которого являются наименования товаров. Чтобы получить значение цены на конкретный товар, надо написать: $prices["яйца 10 шт. 1 сорт"]Значение элемента массива может иметь любой тип. Возможна организация многомерных массивов, так как элемент массива может в свою очередь являться массивом. Примеры обращений к элементам многомерных массивов: $array3[0][4][1]$цены["овощи"]["помидор"]$список[1]["фамилия"]Создание массива Массив можно создать с помощью функции array(), параметры которой и составляют массив. Параметры могут задаваться парами "ключ=>значение". Если при создании массива ключ не указывается, то индекс определяется положением элемента в массиве (начиная с 0). Например: $рост = array (174, 181, 166); //Массив с индексацией, начинающейся с нуля$цена = array ("помидоры" => 15, "огурцы" => 12); //Ассоциативный массив$данные = array ("Иванов" => array ("рост" => 174, "вес" => 68), "Петров" => array ("рост" => 181, "вес" => 90), "Сидоров" => array ("рост" => 166, "вес" => 73)); //Двухмерный массивМассивы можно создать и другим способом - непосредственно. Например: $фрукты[] = "яблоко";$фрукты[] = "груша";$фрукты[] = "слива";$цена["помидор"] = 15;$цена["огурец"] = 12;Индексы элементов неассоциативного массива можно не указывать. PHP автоматически вычислит их. Если же указать индексы таким образом: $фрукты[0] = "груша";$фрукты[5] = "яблоко";то в массиве будет два элемента, причем последний с индексом 5. Элементы 1 - 4 не инициализируются. Можно создать массив с помощью функции array(), а затем добавить к нему новый элемент:
Подсчет количества элементов Количество элементов в массиве можно определить с помощью функций count() или sizeof(). <html><head><title>Размер массива</title></head><body><?php$фрукты = array("яблоко", "груша", "слива", "персик");echo "Размер массива \$фрукты равен ".count($фрукты)."<br>";echo "Последний элемент массива \$фрукты - ".$фрукты[count($фрукты)-1]."<br>";?></body></html> Результат: Размер массива $фрукты равен 4Последний элемент массива $фрукты - персикДля доступа к последнему элементу надо вычесть 1 из размера массива, так как индексация массива начинается с нуля. Для вывода зарезервированного символа "$" перед знаком доллара стоит символ обратной косой черты "\". Частоту вхождения элементов в массив можно определить с помощью функции array_count_values(). Эта функция возвращает массив, в котором ключами являются элементы исследуемого массива, а значениями - частоты их вхождения в исследуемый массив. <html><head><title>Размер массива</title></head><body><?php$фрукты = array("яблоко", "груша", "слива", "персик", "груша");print_r (array_count_values($фрукты));?></body></html>Результат: Array ([яблоко] => 1 [груша] => 2 [слива] => 1 [персик] => 1)Функция print_r() отображает ключи и значения массива, указанного в аргументе. Просмотр массива в цикле Для итерационного просмотра содержимого массива служит функция foreach. С ее помощью можно просмотреть и простой (проиндексированный числами) массив, и ассоциативный, и многомерный. <html><head><title>Просмотр массива</title></head><body><?php$фрукты = array("яблоко", "груша", "слива", "персик", "груша");foreach ($фрукты as $фрукт) { echo "$фрукт<br>"; }?></body></html>Результат: яблокогрушасливаперсикгрушаПросмотр ассоциативного массива <html><head><title>Просмотр ассоциативного массива</title></head><body><?php$цена = array ("помидоры" => 15, "огурцы" => 12);foreach ($цена as $овощи => $руб) { echo "$овощи стоят $руб руб.<br>"; }?></body></html>
Результат: помидоры стоят 15 руб.огурцы стоят 12 руб.Управление массивами Для управление массивами в PHP существует целый ряд специализированных функций. Наиболее употребимыми являются: array_merge() - объединение (слияние) массивов. Последующее значение элемента перекрывает предыдущее, если ключи строковые и одинаковые. <html> <head> <title>Слияние массивов</title> </head> <body> <?php $мнение1 = array (1, "Катя" => "умная", 2, "Женя" => "красивая", 3); $мнение2 = array (4, "Женя" => "глупая", 5, "Катя" => "милая"); echo "1 + 2:<br>"; print_r (array_merge ($мнение1, $мнение2)); echo "<br>2 + 1:<br>"; print_r (array_merge ($мнение2, $мнение1)); ?> </body> </html>
Результат: 1 + 2: Array ([0] => 1 [Катя] => милая [1] => 2 [Женя] => глупая [2] => 3 [3] => 4 [4] => 5) 2 + 1: Array ([0] => 4 [Женя] => красивая [1] => 5 [Катя] => умная [2] => 1 [3] => 2 [4] => 3) Сортировки Сортировать можно как простые, так и ассоциативные массивы. Для сортировки массивов в PHP существуют определенные функции: · sort() - сортирует массив в алфавитном порядке, если хотя бы один из его элементов является строкой, и в числовом порядке, если все его элементы - числа. · rsort() - работает как sort(), но в обратном порядке. · asort() - сортирует ассоциативный массив; работает как sort(), но сохраняет имена элементов. · arsort() - работает как asort(), но в обратном порядке. · ksort() - сортирует ассоциативный массив по именам элементов. · krsort() - работает как ksort(), но в обратном порядке. <html> <head> <title>Сортировка ассоциативного массива</title> </head> <body> <?php $a = array("первый" => 6, "второй" => 2, "третий" => 1); echo "\$a:<br>" asort ($a); echo "asort (\$a):<br>" foreach ($a as $k => $t) echo " $k = $t<br>"; ksort ($a); echo "ksort (\$a):<br>" foreach ($a as $k => $t) echo "$k = $t<br>"; ?> </body> </html>
Результат: $a: первый = 6 второй = 2 третий = 1
asort ($a): третий = 1 второй = 2 первый = 6
ksort ($a): второй = 2 первый = 6 третий = 1 Поиск элемента Для проверки наличия элемента в массиве существуют функции: · in_array() - если элемент найден, возвращает true, иначе - false. · array_search() - если элемент найден, возвращает его ключ, иначе - false. Пример 13 <html><head><title>Поиск элемента в массиве</title></head><body><?php$a = array("первый" => 6, "второй" => 2, "третий" => 1);if (in_array (2, $a)) echo "2 нашли!<br>";echo "ключ найденного элемента - ".array_search(2, $a);?></body></html>Результат: 2 нашли!ключ найденного элемента - второй*По материалам сайта http://htmlweb.ru
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|