Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Подсчет количества элементов

Лабораторная работа №6

Введение в PHP. Создание простейших скриптов.

Краткие теоретические сведения

PHP (PHP: Hypertext Preprocessor — «PHP: препроцессор гипертекста»; первоначально Personal Home Page Tools — «Инструменты для создания персональных веб-страниц») — скриптовый язык программирования общего назначения, интенсивно применяемый для разработки веб-приложений. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров и является одним из лидеров среди языков программирования, применяющихся для создания динамических веб-сайтов.

PHP - это серверный язык создания сценариев. Конструкции PHP, вставленные в HTML-текст, выполняются сервером при каждом посещении страницы. Результат их обработки вместе с обычным HTML-текстом передается браузеру.

PHP-программы состоят из простого текста, поэтому набирать их можно в любом текстовом редакторе. Популярные HTML-редакторы имеют встроенную поддержку для редактирования PHP-программ.

PHP-программа должна быть отделена от обычного HTML-текста. Существует несколько стилей обрамления PHP-кода:

Стиль Открывающий тег Закрывающий тег
Сокращенный <? ?>
XML (стандартный) <?php ?>
ASP <% %>
SCRIPT (программный) <SCRIPT LANGUAGE="php"> </SCRIPT>

Так выглядит простейший смешанный документ, состоящий из 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>

Оператор конкатенации обрабатывает операнды любых типов как строки. Результат его выполнения всегда является строкой.

Операторы присваивания

= Присваивание
+= Сложение ($n += 777; аналогично $n = $n + 777;)
-= Вычитание ($n -= 777; аналогично $n = $n - 777;)
*= Умножение
/= Деление
%= Остаток от деления
.= Конкатенация ($n.= "777"; аналогично $n = $n."777";)

Битовые операторы

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

& И
| ИЛИ
^ Исключающее ИЛИ
~ Инверсия
>> Сдвиг вправо
<< Сдвиг влево

Операторы сравнения

> Больше
>= Больше или равно
< Меньше
<= Меньше или равно
== Равно
=== Идентично
!= Не равно
!== Не идентично

Логические операторы

Логические операторы отличаются от битовых тем, что работают не с числами, а с логическими значениями: TRUE и FALSE.

and И
or ИЛИ
xor Исключающее ИЛИ
! Инверсия
>> Сдвиг вправо
<< Сдвиг влево
&& И
|| ИЛИ

Логические операторы "И" и "ИЛИ" имеют два формата. Это не синонимы. Дело в том, что оператор 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 ($a > $b) { echo "А больше Б"; }elseif ($a == $b) { echo "А равно Б"; }else { echo "А меньше Б"; }

Альтернативный синтаксис оператора 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 лишь тем, что истинность условия проверяется не до, апосле выполнения тела цикла.

<html><head> <title>Цикл do.. while</title></head><body><?php$a = 11;do { echo "квадрат $a равен ".($a*$a)."<br>"; $a++; }while ($a <= 19);?></body></html>

В организации цикла могут участвовать еще два оператора: 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(), а затем добавить к нему новый элемент:

$фрукты = 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 Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...