Генерация случайных чисел
Лабораторная работа № 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 ( ).
Пример:
<?phpsrand();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, если константа определена в теле программы выше вызова данной функции.