Лабораторная работа № 2. Управляющие конструкции



Лабораторная работа № 1. Введение в php

По сути своей любой PHP-скрипт это обычный текстовый файл, который, помимо простого текста (или HTML-кода), содержит в себе команды PHP.

Когда пользователь обращается к такому скрипту, запрос передаётся серверу, который действует следующим образом: всё, что не является PHP-кодом, просто передаётся пользователю без изменений, но как только обработчик встречает метку начала PHP-кода, он выполняет этот код и «отдаёт» пользователю результат обработки.

PHP-код может находиться в любой части документа и может быть включен в документ одним из двух способов:

<?php PHP-код ?> или <? PHP-код ?>

Основные правила написания программы на РНР:

  • в именах переменных и функций большие и малые буквы различаются;
  • в конце каждого оператора (команды) указывается точка с запятой (;);
  • специального символа переноса оператора на другую строчку нет – переносить можно с любой позиции в которой можно указать пробел (слова не разрываются при переносе оператора).

Переменные в PHP

Переменные в РНР объявляются при первом их использовании в программе. Тип переменной косвенно определяется по типу хранящихся в ней данных.

Имена переменных:

  • начинаются со знака доллара ($);
  • могут содержать только латинские буквы, цифры, символы подчеркивания;
  • состоят из одного или нескольких символов и начинаются с буквы или символа подчеркивания;
  • не может совпадать с каким-либо из стандартных ключевых слов РНР;
  • учитывается регистр символов.

С любыми переменными можно производить весь набор стандартных математических операций и некоторые дополнительные операции.

Таблица 1. Основные операции для работы с переменными

Знак Назначение Пример
+ Сложение двух переменных. $v = 1; $k = 2; $s = $v + $k; // $s = 3
Вычитание одной переменной из другой $v = 1; $k = 2; $s = $v - $k; // $s = –1
* Произведение переменных $v = 1; $k = 2; $s = $v * $k; // $s = 2
/ Деление одной переменной на другую $v = 1; $k = 2; $s = $v / $k; // $s = 0.5
% Остаток от целочисленного деления $v = 1; $k = 2; $s = $v % $k; // $s = 1
++ Инкремент (увеличение на единицу) $v = 6; $s = $v++; // $s = 6, а $v = 7 $v = 6; $s = ++$v; // $s = 7, и $v = 7
– – Декремент (уменьшение на единицу) $v = 6; $s = $v--; // $s = 6, а $v = 5 $v = 6; $s = --$v; // $s = 5, и $v = 5
• точка Сложение двух строк (конкатенация) $v = "Как"; $k ="Вас"; $m="зовут?"; $s = $v ." ".$k." ".$m;// $s = "Как Вас зовут?"
?= Составное присваивание. Вместо знака ?должен быть подставлен один из знаков операций:+ - * / % . $a= 3; $b= 1; $b+= $a;// $b = 3 $a= 2; $b= 1; $b-= $a;// $b = –1 $a= 3; $b= 2; $b*= $a;// $b = 6 $a=5; $b = 1; $b /= $a; // $b = 0.2 $a = "Здравия";$b = "Желаю"; $b .= $a;// $b = "Желаю Здравия" $a = 5; $b = 17; $b %= $a; // $b = 2

Таблица 2. Логические операторы

Обозначение Название Пример
and && И $a and $b $a && $b
or || ИЛИ $a or $b $a || $b
xor Исключающее ИЛИ $a xor $b
! Инверсия (NOT) ! $a

Таблица 3. Операторы сравнения

Обозначение Название Пример
== Равенство $a == $b
=== Эквивалентность $a === $b
!= <> Неравенство $a != $b $a <> $b
!== Неэквивалентность $a !== $b
< Меньше $a < $b
> Больше $a > $b
<= Меньше или равно $a <= $b
>= Больше или равно $a >= $b

Функции ввода

В РНР существует несколько способов вывода информации на страницу:

  • Операторы echoиprintвыводят значение аргумента:

echo<строка>;print(<строка>);

Работают одинаково, но print всегда возвращает 1, в то время какecho ничего не возвращает.

  • var_dump (<переменная>); выводитпеременную вместе с типом.

Замечания:

    • Строковое выражение может быть взято как в одинарные, так и в двойные кавычки.
    • Если используются двойные кавычки, то вместо имен переменных будут выводиться их значения.

Функции для работы с переменными:

1. Функция isset (переменная) возвращаетtrue, если данная переменная существует (т.е. определена в программе).

2. Процедура unset (переменная); удаляет данную переменную из внутренних таблиц интерпретатора.

3. Функции определения типа переменных:

    • is_integer (переменная)возвращаетtrue, еслипеременнаяцелое число;
    • is_double (переменная)возвращаетtrue, еслипеременнаядействительное число;
    • is_string (переменная)возвращаетtrue, еслипеременнаястрока;
    • is_numeric (переменная)возвращаетtrue, еслипеременнаяявляется числом или строковым представлением числа (строка состоящая из цифр);
    • is_bool (переменная)возвращаетtrue, еслипеременнаяявляется логической;
    • is_array (переменная)возвращаетtrue, еслипеременнаямассив;
    • gettype (переменная)возвращает строку, соответствующую типу переменной (integer,double,string...).

4. Процедура settype (переменная, тип данных);преобразует значение переменной из одного типа в другой.

Генерация случайных чисел

Функция lcg_value ( )возвращает случайное дробное число в диапазоне от 0 до 1.

Функция rand ([int start, int end]) возвращает случайное число из диапазона, заданного начальным значениемstartи конечным значениемend. Если значения не заданы, то возвращается случайное число от 0 до максимально-возможного значения (дляWindowsобычно до 32767).

Максимально-возможное значение можно определить функцией getrandmax ( ).

Перед тем как первый раз генерировать случайное число, нужно инициализировать генератор путем вызова функции srand ( ).

Пример:

<?php srand(); echo 'Наибольше случайное число - ' . getrandmax(); $a = rand(); $b = rand(1,50); $c = lcg_value(); echo '<br> rand() = ' . $a; echo '<br> rand(1,50) = ' . $b; echo '<br> lcg_value() = ' . $c; ?>

Замечание. Начиная с версии PHP 4.2.0 не нужно вызывать srand() – PHP делает это автоматически.

Константы

Константы объявляются в РНР при помощи процедуры defme():

define('CONSTANT', value); или define(“CONSTANT”, value);

'CONSTANT'имя константы,valueеё значение. При использовании константы на неё ссылаются по имени. Например:

define('CONSTANT1', Группа) ;

define("CONSTANT2", "\x20"); // код пробела

define('CONSTANT3', 303);

По традиции имена констант пишут буквами верхнего регистра.

Существует функция defmed('CONSTANT'), которая проверяет, определена ли константа. Функция возвращаетtrue, если константа определена в теле программы выше вызова данной функции.

Практическая работа № 1

Во всех скриптах в заголовке окна браузера должны быть ваши фамилия и имя!

УПРАЖНЕНИЕ 1-1.Подготовительная работа

1. Запустите «Денвер».

2. На виртуальном диске «PHP-server»создайте в ней вашу личную папку (например,PHP_Фамилия). В вашей личной папке создайте еще одну папку с именемWWW (в ней будутрасполагаться все HTML и PHP-файлы вашего сайта).

3. Перезапустите «Денвер».

4. Откройте браузер и откройте в нём страницу http://192.168.0.44/student/ PHP_Фамилия/. Вы должны увидеть страницу с заголовком «Index of /» (рис. 1). Это означает, что новый сайт создан успешно. Таким же методом Вы можете создать любой другой сайт.

Рис. 1 - Внешний вид только что созданного сайта

5. В папке WWWтолько что созданного сайта создайте новый текстовый файл с именемindex.php.Откройте этот файл с помощью Блокнота и впишите в него следующий код:

<p> Дата и время: <p> <?php $d=date("d.m.YH:i"); echo($d); ?>

Рис. 2 - Результат выполнения скрипта «Дата и время»

6. Сохраните файл. Откройте в браузере страницу http://192.168.0.44/student/ PHP_Фамилия/index.php. Если Вы сделали всё правильно, то перед Вами появится окно, показанное на рис. 2 (только дата и время будут другими).

Пояснения:

· В первой строке идёт обычный текст и HTML-тег. Они никак не обрабатываются и просто передаются в браузер пользователя.

· Вторая строка помимо HTML-тега содержит ещё и метку начала PHP-кода. Всё, что располагается до метки <?php, передаётся в браузер без изменений.

· Третья строка примера первая строка PHP-кода вычисляет текущую дату с помощью функцииdate("d.m.Y H:i")и заносит её в переменную с именем$d.

· Четвёртая строка выводит переменную $d на экран. За это отвечает функция echo( ).

· Пятая строка говорит о том, что PHP-код закончился.

· Заметьте, что каждая строка заканчивается точкой с запятой (;). Этот символ являетсяобязательнымконцом каждой завершённой команды PHP.

УПРАЖНЕНИЕ 1-2

1. В папке WWWсоздайте новый текстовый файл с именемlab-1-1.phpскодом:

<?php

$var1= '3';

$var2 = 5;

echo $var1 . ' - ' . gettype($var1) . '<br>';

print ($var2 . ' - ' . gettype($var2) . '<br>');

$var3= 'abc';

Var_dump ($var3);

echo '<br>';

$var4=123;

Var_dump ($var4);

?>

2. Сохраните файл. Откройте в браузере страницу http://192.168.0.44/student/ PHP_Фамилия/lab-1-1.php.

УПРАЖНЕНИЕ 1-3

1. В папке WWWсоздайте новый текстовый файл с именемlab-1-2.phpскодом:

<p> Арифметические операции:

<p>

<?php

$x=12;

$y=4;

echo('12+4=' . ($x+$y) . '<br>');

echo('12-4=' . ($x-$y) . '<br>');

echo('12*4=' . ($x*$y) . '<br>');

echo('12/4=' . ($x/$y));

?>

2. Сохраните файл. Откройте в браузере страницу http://192.168.0.44/student/ PHP_Фамилия/lab-1-2.php.

3. Измените текст файла lab-1-2.phpследующим образом:

<p> Арифметические операции:

<p>

<?php

$x=rand(1,10);

$y=rand(1,10);

print ($x . '+' . $y . '=' . ($x+$y) . '<br>');

print ($x . '-' . $y . '=' . ($x-$y) . '<br>');

print ($x . '*' . $y . '=' . ($x*$y) . '<br>');

print ($x . '/' . $y . '=' . ($x/$y) . '<br>');

?>

4. Сохраните файл. Откройте в браузере и несколько раз обновите страницу.

УПРАЖНЕНИЕ 1-4

1. Создайте php-скрипт lab-1-3.php, в котором создайте константуNUM_Eсо значением 2.71828 (число е).

2. Выведите на экран значение этой константы в виде строки «Число e равно …».

3. Присвойте переменной $num_e1значение константы и выведите на экран имя переменной$num_e1, ее значение и тип (т.е. в браузере должна получиться строка вида «$num_e1 = 2.71828 double»).

4. Последовательно измените тип переменной $num_e1на строковый, целый и булевский, каждый раз отображая тип и получившееся значение переменной$num_e1.

Лабораторная работа № 2. Управляющие конструкции

Условный оператор IF имеет два формата.

if (условие)

{ блок операторов 1 }

[else { блок операторов 2 }];

Если условие истинно, то выполнится блок операторов 1, а если условие ложно блок операторов 2.

if (условие) { блок операторов }

[ elseif (условие) { блок операторов }]

...

[ elseif (условие) { блок операторов } ]

[ else { блок операторов } ]

Очередное условие elselfвычисляется лишь в том случае, если все предшествующие условияifиelselfоказались ложными.

Замечание.Допускаются вложенные командыif.

Тернарный оператор ? работает почти также как и оператор IF:

Переменная = (условие) ? (Выражение-2) : (Выражение-З)

Тернарный оператор "?:" это вид условного оператора, он проверяет заданное условие и если оно верно, то присваивает переменной значение Выражения-2, иначе – Выражения-3.

Оператор SWITCHимеет вид:

switch(выражение) {

case (значение): { блок операторов }

[case (значение): { блок операторов }]

...

[default: { блок операторов }]

}

Значение выражения в операторе switchпоследовательно сравнивается с условиями в секцияхcase.

Когда секция case, равная значению выражения, найдена, выполняются все операторы после нее и до ближайшего оператораbreak(данный оператор может отсутствовать в конструкции) или до конца оператораswitch. Операторbreakпередает управление оператору, следующему за закрывающей скобкой оператораswitch.

Если не одно из значений caseне совпадает с выражением в скобках, то выполняются операторы, стоящие после ключевого словаdefault(данное значение может отсутствовать в конструкции, и тогда управление будет передаваться на команды, следующие за конструкциейswitch).

Оператор цикла с предусловием WHILEвыглядит так:

while (выражение-условие)

{ операторы тела цикла }

При входе в цикл вычисляется выражение-условие, и, если его значение истинно или отлично от нуля, выполняется тело цикла. Затем вычисления выражения-условия и операторов тела цикла выполняется до тех пор, пока значение выражения-условия не станет ложным или равным нулю.

Оператор цикла с постусловием DО WHILEработает почти так же, как и циклwhile, однако условие проверяется не в начале, а в конце каждой итерации.

do

{ операторы тела цикла }

while (условие);

При входе в цикл в любом случае выполняется тело цикла (т.е. цикл всегда будет выполнен хотя бы один раз), затем вычисляется условие, и если оно истинно, вновь выполняется тело цикла.

Оператор цикла FORимеет вид:

for (инициализация; условие; приращение)

{ операторы тела цикла }

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

Условие проверяется в начале каждой итерации и определяет, должна ли выполняться текущая итерация (если условие истинно) или нет.

Приращение- операторычерез запятые, которыевыполняются в конце каждой итерации цикла (обычно определяется изменение управляющей переменной при каждой итерации).

Пример:

for ($i = 10; $i <= 100; $i +=10) // обратная косая черта специальный

echo ("\$i = ". $i . "<br>"); // символ “$” делает обычным

В этом примере управляющая переменная $i инициализируется значением 10. Цикл продолжается до тех пор, пока $i не достигнет или не превысит пороговую величину 100. При каждой итерации значение $i увеличивается на 10. В результате команда echoвыполняется 10 раз, каждый раз выводя текущее значение $i. В управляющих выражениях циклов for могут отсутствовать любые компоненты.

Оператор breakнемедленно прерывает выполнение операторов циклов иswitch.

Оператор continueпредназначен для пропуска всех оставшихся команд текущей итерации цикла и немедленного начала новой итерации.

ПРАКТИЧЕСКАЯ РАБОТА № 2

Во всех скриптах в заголовке окна браузера должны быть ваши фамилия и имя!

УПРАЖНЕНИЕ 2-1. Использование IF

Создайте сценарий lab-2-1.php, содержащий код:

<?php

$a=1;$b = false;

if ($a) { echo '$a='."$a - истина <br>"; }

else { echo '$a='."$a - ложь <br>"; }

if ($b) { echo '$b='."$b - истина <br>"; }

else { echo '$b='."$b - ложь <br>"; }

?>

Проверьте результат работы скрипта при следующих значениях переменных:

$а = 0 и $b = "0"

$а= 10 и $b = "true"

$а = false и $b = "false"

$а = -1 и $b = ""

УПРАЖНЕНИЕ 2-2. Использование ELSEIF

1. Создайте сценарий lab-2-2.php, позволяющий найти наибольшее из двух чисел:

<p> Наибольшее число:

<p> <?php

srand();

$x=rand(1,10);

$y=rand(1,10);

print ('$x =' . $x . "<br>");

print ('$y =' . $y . "<br>");

if ($x>$y) echo("Наибольшее =" . $x);

elseif ($x<$y) echo ("Наибольшее =" . $y);

else print ("Наибольшего нет");

?>

2. Сохраните файл. Откройте в браузере и несколько раз обновите страницу.

УПРАЖНЕНИЕ 2-3. Использование SWITCH

1. Создайте сценарий lab-2-3.php со следующим кодом:

<?php

$а = "А";

switch ($а) {

case 'А' :

echo 'Переменная имеет значение "А"'; break;

case 'В':

echo 'Переменная имеет значение "В"'; break;

default:

echo 'Ответ не найден ' ;

}

?>

2. Проверьте результат выполнения данного скрипта, если переменная $а равна: "А", "В", "С".

3. Снова присвойте переменной $а значение "А".

4. Удалите из первой секции case операторbreak(6-ую строку кода).

5. Сохраните изменения и проверьте работу скрипта. Объясните получившийся результат.

УПРАЖНЕНИЕ 2-4.Использование SWITCH

1. Создайте сценарий lab-2-4.php со следующим кодом:

<?php

$dn=rand(1,7);

print ($dn ." - номер дня недели <br>");

switch ($dn) {

case 1: print ("это понедельник "); break;

case 2: print ("это вторник "); break;

case 3: print ("это среда "); break;

case 4: print ("это четверг "); break;

case 5: print ("это пятница "); break;

case 6: print ("это суббота "); break;

case 7: print ("это воскресенье");

}

?>

2. Сохраните файл. Откройте в браузере и несколько раз обновите страницу.

УПРАЖНЕНИЕ 2-5.Использование цикла WHILE

1. Создайте сценарий lab-2-5.php, выводящий в браузер числа от 1 до 5:

<?php

$var = 5; $i = 0;

while (++$i <= $var)

{ echo $i . ' '; }

?>

2. Дополните сценарий таким образом, чтобы в окне браузера с новой строки выводились числа в обратном порядке, то есть от 5 до 1.

УПРАЖНЕНИЕ 2-6.Использование цикла WHILE

1.Создайте сценарий lab-2-6.php со следующим кодом:

<?php

$a=rand(1,10); $b=rand(10,20);

print("<p> Числа из отрезка [".$a.",".$b."]: <br>");

while ($a<=$b) { echo($a . "<br>");

$a=++$a; }

?>

2. Сохраните файл. Откройте в браузере и несколько раз обновите страницу.

УПРАЖНЕНИЕ 2-7. Использование цикла DO WHILE

1.Создайте сценарий lab-2-7.php со следующим кодом:

<?php

$a=rand(-5,0);

$b=rand(0,5);

print ("<p> Числа из отрезка [".$a.",".$b."]: <br>");

do {

echo($a . "<br>");

$a=++$a; }

while ($a<=$b);

?>

2. Сохраните файл. Откройте в браузере и несколько раз обновите страницу.

УПРАЖНЕНИЕ 2-8.Использование цикла FOR

1.Создайте сценарий lab-2-8.php со следующим кодом:

<?php

$a=rand(1,10);

$b=rand(10,20);

print ("<p> Числа из отрезка [".$a.",".$b."]: <br>");

for ($i=$a; $i<=$b; ++$i) {

echo($a . "<br>");

$a=++$a; }

?>

2. Сохраните файл. Откройте в браузере и несколько раз обновите страницу.

УПРАЖНЕНИЕ 2-9.Вывод таблицы умножения

1.Создайте сценарий lab-2-9.php со следующим кодом:

<HTML>

<TITLE> Таблица умножения </TITLE>

<BODY>

<TABLE border=1>

<?php

for ($i=1; $i<=10; $i++) { // запускаем первый цикл

echo ("<tr>"); // начало строки таблицы

for ($k=1; $k<=10; $k++) { // запускаем второй цикл

echo ("<td align=center>"); // открываем ячейку таблицы

$p=$i*$k; // находим произведение двух чисел и...

echo ($p); // выводим его,

echo ("</td>"); // а потом закрываем ячейку

}

echo ("</tr>"); // конец строки таблицы

}

?>

</TABLE>

</BODY>

</HTML>

2. Сохраните файл. Откройте в браузере.


Дата добавления: 2019-11-16; просмотров: 666; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!