2 Основные операторы и функции языка PHP

Операторы и функции являются основными инструментами любого языка программирования, в том числе и PHP. С их помощью можно осуществлять управление последовательностью действий в ходе выполнения сценария. К основным функциям языка PHP можно отнести математические функции и функции работы с данными [2].

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

2.1 Математические операторы

К основным математическим операторам PHP относятся следующие.

+ – сумма двух чисел;

- – разность двух чисел;

* – произведение двух чисел;

/ – частное от деления двух чисел;

% – остаток от деления одного числа на другое (частное по модулю).

Ниже представлен пример использования математических операторов сложения и вычитания в языке PHP.

<HTML>

    <HEAD>

    <TITLE>Пример использования математических операторов "+" и "-"

    </TITLE>

    </HEAD>

    <BODY>

        <P> Математические операторы "+" и "-"</P>

        <?php

            echo "5 + 2=", 5 + 2, "<BR>";

            echo "5 - 2 =", 5 - 2, "<BR>";

        ?>

    </BODY>

</HTML>

Реализация данного кода представлена на рисунке 2.1.

В ниже следующем примере реализовано использование операторов умножения, деления и остатка от деления в языке PHP.

<HTML>

    <HEAD>

    <TITLE>Пример использования математических операторов "*", "/", "%" </TITLE>

    </HEAD>

    <BODY>

        <B><P>Математические операторы "*", "/", "%"</P></B>

        <?php

            echo "5 * 2=", 5 * 2, "<BR>";

            echo "5 / 2 =", 5 / 2, "<BR>";

            echo "5 % 2 =", 5 % 2, "<BR>";

        ?>

    </BODY>

</HTML>

Реализация данного кода представлена на рисунке 2.2.


Рисунок 2.1 – Результат работы операторов сложения и вычитания


Рисунок 2.2 – Результат работы математических операторов *, /, %

2.2 Математические функции

2.2.1 Функции округления

2.2.1.1 Функция abs

Функция abs возвращает модуль числа.

Синтаксис:

mixed abs(mixed $number),

где $number - заданное число.

При использовании функции abs тип параметра “$number” может быть целым или дробным, а тип возвращаемого значения всегда совпадает с типом этого параметра.

Ниже представлен пример работы функции abs.

<HTML>

    <HEAD>

    <TITLE>Пример использования функции abs</TITLE>

    </HEAD>

    <BODY>

        <?php

            $number = -2,7; // $number = 2,7

            echo "Абсолютное значение числа -2,7 равно ".abs($number);

        ?>

    </BODY>

</HTML>

Реализация данного кода представлена на рисунке 2.3.


Рисунок 2.3 – Нахождение модуля числа

Таким образом, как видно на рисунке 2.3, в данном примере с помощью функции abs было определено абсолютное значение числа -2,7, равное 2,7, которое было выведено на экран.

2.2.1.2 Функция round

Функция round производит округление дробного числа до целого.

Синтаксис:

double round(double $val),

где $val - исходное число.

Функция round округляет число “$val”, переданного в ее параметре, в меньшую сторону до ближайшего целого, после чего возвращает результат.

Ниже представлен пример работы функции round.

<HTML>

    <HEAD>

    <TITLE>Пример использования функции round</TITLE>

    </HEAD>

    <BODY>

        <?php

            $per = round(3.4); // $per = 3

            echo "<B> Округление до ближайшего целого:

            </B> число 3,4 округлено до $per";

        ?>

    </BODY>

</HTML>

Реализация данного кода представлена на рисунке 2.4.


Рисунок 2.4 – Округление числа до ближайшего целого

Таким образом, как видно на рисунке 2.4, в данном примере с помощью функции round число 3,4 было округлено до 3. То есть произошло округление числа до ближайшего целого.

2.2.1.3 Функция ceil

Функция ceil осуществляет округление дробного числа до следующего целого.

Синтаксис:

int ceil(float $number),

где $number - исходное число.

Функция ceil осуществляет округление числа “$number” в большую сторону и возвращает наименьшее целое число, не меньше заданного.

Ниже представлен пример работы функции ceil.

<HTML>

    <HEAD>

    <TITLE>Пример использования функции ceil</TITLE>

    </HEAD>

    <BODY>

        <?php

            $per = ceil(3.4); // $per = 4

            echo "<B> Округление числа в большую сторону: </B> число 3,4 округлено до $per";

        ?>

    </BODY>

</HTML>

Реализация данного кода представлена на рисунке 2.5.


Рисунок 2.5 - Округление числа в большую сторону

Таким образом, как видно на рисунке 2.5, в данном примере с помощью функции ceil число 3,4 было округлено до 4. То есть возвратилось число, не меньше исходного, которое было выведено на экран.

2.2.1.4 Функция floor

Функция floor осуществляет удаление дробной части числа.

Синтаксис:

int floor(float $number),

где $number - округляемое число.

Функция floor отбрасывает дробную часть числа “$number”, заданного в ее параметре и возвращает целое число, не превосходящее заданное.

Ниже представлен пример работы функции floor.

<HTML>

    <HEAD>

    <TITLE>Пример использования функции floor</TITLE>

    </HEAD>

    <BODY>

        <?php

            $per = floor(3.4); // $per = 3

            echo "<B>Удаление дробной части числа:

            </B> число 3,4 округлено до $per";

        ?>

    </BODY>

</HTML>

Реализация данного кода представлена на рисунке 2.6.


Рисунок 2.6 - Удаление дробной части числа

Таким образом, как видно на рисунке 2.6, в данном примере с помощью функции floor у исходного числа была отброшена дробная часть, то есть число 3,4 было округлено до 3.

2.2.2 Случайные числа

2.2.2.1 Функция srand

Функция srand изменяет начальное число генератора псевдослучайных чисел.

Синтаксис:

void srand(int $seed),

где $seed - инициализирующее число.

Функция srand устанавливает начальное число генератора случайных чисел в “$seed”. Если параметр не указан, берется любое случайное число.

В представленном ниже коде

srand(1000);

с помощью функции srand осуществлялась инициализация генератора случайных чисел с начальным числом, равным 1000.

2.2.2.2 Функция getrandmax

Функция getrandmax возвращает максимально возможное случайное число.

Синтаксис:

int getrandmax().

Функция getrandmax возвращает максимальное значение, которое можно получить при помощи функции генерации случайных чисел rand.

Например, в ниже представленном коде

$perem = getrandmax();

echo $perem;

на экран выводится максимально возможное случайное число.

2.2.2.3 Функция rand

Функция rand производит генерацию случайного числа.

Синтаксис:

int rand([int $min [, int $max]]),

где $max - максимальное значение,

$min - минимальное значение.

Функция rand генерирует случайное число, располагающееся в пределах параметров “$min” и “$max” включительно. Для корректной работы данной функции перед ее использованием необходимо проинициализировать генератор случайных чисел функцией srand.

Ниже представлен пример работы функции rand.

<HTML>

    <HEAD>

    <TITLE>Пример использования функции rand</TITLE>

    </HEAD>

    <BODY>

        <?php

            $perem = rand(1,20); // генерация случайного числа

            echo "Случайное число от 1 до 20 равно ".$perem;

        ?>

    </BODY>

</HTML>

Реализация данного кода представлена на рисунке 2.7.


Рисунок 2.7 - Генерация случайного числа в интервале от 1 до 20

Таким образом, как видно на рисунке 2.7, в данном примере с помощью функции rand было сгенерировано случайное число 9.

2.2.3 Перевод в различные системы счисления

2.2.3.1 Функция base_convert

Функция base_convert осуществляет конвертацию числа из одной системы счисления в другую.

Синтаксис:

string base_convert(string $number, int $frombase, int $tobase),

где $number - переводимое число,

$frombase - исходное основание,

$tobase - основание результата.

Функция base_convert переводит число “$number”, заданное в системе счисления по основанию “$frombase”, в систему по основанию “$tobase”. Параметры “$frombase” и “$tobase” могут принимать значения от 2 до 36 включительно. В параметре “$number” цифры обозначают сами себя, а буква “А” соответствует 11, и так далее до “Z”, которая обозначает цифру 36.

Ниже представлен пример работы функции base_convert.

<HTML>

    <HEAD>

    <TITLE>Пример использования функции base_convert</TITLE>

    </HEAD>

    <BODY>

        <?php

            $x = base_convert ("FF",16,2); // перевод шестнадцатеричного числа

            echo "Шестнадцатеричное число FF после перевода в двоичную систему равно $x";

        ?>

    </BODY>

</HTML>

Реализация данного кода представлена на рисунке 2.8.


Рисунок 2.8 - Перевод из шестнадцатеричной системы счисления в двоичную

2.2.3.2 Функция bindec

Функция bindec производит конвертацию двоичного числа в десятичное.

Синтаксис:

int bindec(string $binary_string),

где $binary_string - двоичное число.

Функция bindec преобразует двоичное число, заданное в строке “$binary_string”, в десятичное число.

Например, в представленном ниже коде

$x = bindec(11111111); // $x = 255

$x = bindec(10101010); // $x = 170

с помощью функции bindec осуществлялся перевод чисел из двоичной системы в десятичную систему счисления.

2.2.3.3 Функция decbin

Функция decbin производит конвертацию числа, заданного в десятичной системе счисления, в двоичную систему.

Синтаксис:

string decbin(int $number),

где $number - десятичное число.

Функция decbin возвращает строку, представляющую собой двоичное представление десятичного числа “$number”.

Например, в представленном ниже коде

$x = decbin(255); // $x = 11111111

$x = decbin(2147483647); // $x = 1111111111111111111111111111111

с помощью функции decbin был реализован перевод чисел из десятичной системы в двоичную систему счисления.

2.2.3.4 Функция dechex

Функция dechex производит конвертацию десятичного числа в шестнадцатеричное.

Синтаксис:

string dechex(int $number),

где $number - исходное число.

Функция dechex возвращает строку, представляющую собой шестнадцатеричное представление десятичного числа “$number”.

Ниже представлен пример работы функции dechex.

<HTML>

    <HEAD>

    <TITLE>Пример использования функции dechex</TITLE>

    </HEAD>

    <BODY>

        <?php

            $x = dechex(255); //$x = ff

            echo "Десятичное число 255 после перевода в шестнадцатеричную систему равно $x";

        ?>

    </BODY>

</HTML>

Реализация данного кода представлена на рисунке 2.9.


Рисунок 2.9 - Перевод числа из десятичной системы счисления в шестнадцатеричную

Таким образом, как видно на рисунке 2.9, в данном примере число 255 было преобразовано в число ff в шестнадцатеричной системе счисления.

2.2.4 Функции нахождения максимума и минимума

2.2.4.1 Функция min

Функция min возвращает наименьшее из чисел, заданных в ее аргументах.

Синтаксис:

mixed min(mixed $arg1 [int $arg2, ..., int $argn]),

где $arg1,..int $argn - сравниваемые числа.

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

Например, в представленном ниже коде

$x[1]= -1;

$x[2]= 4;

$x[3]= 9;

echo min($x);

с помощью функции min было определено и выведено на экран минимальное число, равное -1.

2.2.4.2 Функция max

Функция max возвращает наибольшее из чисел, заданных в ее аргументах.

Синтаксис:

mixed max(mixed $arg1 [int $arg2, ..., int $argn]),

где $arg1, .. int $argn - сравниваемые числа.

Функция max работает аналогично функции min, только осуществляет поиск максимального значения из заданных чисел.

Ниже представлен пример работы функции max.

<HTML>

    <HEAD>

    <TITLE>Пример использования функции max</TITLE>

    </HEAD>

    <BODY>

        <?php

            $x[0]=4;

            $x[1]=1;

            $x[2]=5;

            $x[3]=2;

            echo "Максимальное число из ";

            foreach($x as $i) echo "$i, "; echo "равно";

            echo max($x); // вывод максимального числа, равного 5

        ?>

    </BODY>

</HTML>

Реализация данного кода представлена на рисунке 2.10.


Рисунок 2.10 - Нахождение максимального числа

2.2.5 Степенные функции

2.2.5.1 Функция sqrt

Функция sqrt возвращает квадратный корень из заданного числа.

Синтаксис:

float sqrt(float $arg),

где $arg - число.

Функция sqrt определяет квадратный корень из заданного числа “$arg”. Если задано отрицательное число, то генерируется предупреждение, но работа программы не прекращается.

Ниже представлен пример работы функции sqrt.

<HTML>

    <HEAD>

    <TITLE>Пример использования функции sqrt</TITLE>

    </HEAD>

    <BODY>

        <?php

            $number = 20;

            echo "Квадратный корень из $ number равен ".sqrt($number);

        ?>

    </BODY>

</HTML>

Реализация данного кода представлена на рисунке 2.11.


Рисунок 2.11 - Нахождение квадратного корня

Таким образом, как видно на рисунке 2.11, в данном примере с помощью функции sqrt был найден квадратный корень числа 20, равный 4,472135955.

2.2.5.2 Функция log

Функция log возвращает натуральный логарифм числа.

Синтаксис:

float log(float $arg),

где $arg - число.

Функция log возвращает натуральный логарифм числа “$arg”. Если задано недопустимое число, то генерируется предупреждение, но работа программы не прекращается.

Ниже представлен пример работы функции log.

<HTML>

    <HEAD>

    <TITLE>Пример использования функции log</TITLE>

    </HEAD>

    <BODY>

        <?php

            $x = log(2.718281828459045);

            echo "Логарифм от 2.718281828459045 равен ".$x;

        ?>

    </BODY>

</HTML>

Реализация данного кода представлена на рисунке 2.12.


Рисунок 2.12 - Нахождение логарифма числа “e”

Таким образом, как видно из рисунка 2.12, в данном примере с помощью функции log был найден натуральный логарифм числа 2.718281828459045. Известно, что это значение равно числу “е”, поэтому на экран была выведена единица.

2.2.5.3 Функция pow

Функция pow производит возведение заданного числа в степень.

Синтаксис:

float pow(float $base, float $exp),

где $base - число,

$exp - степень.

Функция pow возвращает число “$base” в степени “$exp”. В качестве аргументов функции pow могут выступать как целые, так и дробные числа.

Ниже представлен пример работы функции pow.

<HTML>

    <HEAD>

    <TITLE>Пример использования функции pow</TITLE>

    </HEAD>

    <BODY>

        <?php

            $x = 5; $y = 6;

            $rez = pow($x,$y); // возведение числа 5 в степень 6

            echo "$x в степени $y равно ".$rez;

        ?>

    </BODY>

</HTML>

Реализация данного кода представлена на рисунке 2.13.


Рисунок 2.13 - Возведение в степень

Таким образом, как видно на рисунке 2.13, в данном примере с помощью функции pow осуществлялось возведение числа 5 в степень 6, и получено число 15625.

2.2.6 Тригонометрические функции

2.2.6.1 Функция sin

Функция sin возвращает синус числа.

Синтаксис:

float sin(float $arg),

где $arg - число.

Функция sin возвращает синус от числа “$arg”, переданного в ее параметре. В функции sin число “$arg” задается в радианах.

Ниже представлен пример работы функции sin.

<HTML>

    <HEAD>

    <TITLE>Пример использования функции sin</TITLE>

    </HEAD>

    <BODY>

        <?php

            $x = sin(1/2);

            echo "Синус 1/2 равен $x";

        ?>

    </BODY>

</HTML>

Реализация данного кода представлена на рисунке 2.14.


Рисунок 2.14 - Нахождение синуса от аргумента 1/2

Таким образом, как видно на рисунке 2.14, в данном примере с помощью функции sin был определен синус от аргумента 1/2 , который был выведен на экран.

2.2.6.2 Функция cos

Функция cos возвращает косинус числа.

Cинтаксис:

float cos(float $arg),

где $arg - число.

Функция cos возвращает косинус числа “$arg”, заданного в ее параметре. В функции cos число “$arg” задается в радианах.

2.2.6.3 Функция acos

Функция acos возвращает арккосинус числа.

Синтаксис:

float acos(float $arg),

где $arg - число.

Функция acos возвращает аркосинус числа “$arg”, заданного в ее параметре. В функции acos число “$arg” задается в радианах.

Ниже представлен пример работы функции acos.

<HTML>

    <HEAD>

    <TITLE>Пример использования функции acos</TITLE>

    </HEAD>

    <BODY>

        <?php

            echo "Арккосинус 1 равен ". $x=acos(1).".";

        ?>

    </BODY>

</HTML>

Реализация данного кода представлена на рисунке 2.15.


Рисунок 2.15 - Определение арккосинуса от аргумента

2.3 Операторы языка PHP

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

Основным оператором присваивания в языке PHP является знак равенства “=”, который служит для присвоения значения определенной переменной. Например, в представленном ниже коде переменной “$oranges” присваивается значение 12.

$oranges = 12;

Наряду с основным оператором присваивания в языке PHP существуют комбинированные операторы присваивания для всех типов операторов (бинарных, арифметических и строковых). Они позволяют использовать значение переменной в выражении и сохранять результат в этой же самой переменной. Ниже приведен перечень комбинированных операторов.

+= -= *= /= .= %= &= |= ^= <= >=

Использование этих операторов делает PHP-код более компактным. Например, в представленном ниже коде к значению переменной “$value” прибавляется число:

$value=$value+10;

С использованием комбинированного оператора присваивания этот код можно записать короче:

$value+=10;

Ниже приведен пример использования комбинированных операторов присваивания.

<?php

            $text = "Жизнь";

            $total = 150;

            echo $text .= "прекрасна.";

            echo "Результат=". $total /=3;

?>

Результатом выполнения этого фрагмента кода будет строка:

Жизнь прекрасна. Результат=50.

При написании PHP-сценариев могут возникать ситуации, когда требуется увеличить или уменьшить значение некоторой переменной на единицу. Особенно часто это используется в циклах. В языке РНР для этого предусмотрены специальные операторы. Для увеличения значения переменной на единицу предназначен оператор “++” или инкремент, а для уменьшения используется оператор “--” или декремент.

Операторы инкремента и декремента могут быть использованы как до (префиксная запись), так к после (постфиксная запись) имени переменной.

Если используется префиксная запись, то значение переменной увеличивается, и это же значение используется как результат вычисления данного выражения.

При использовании постфиксной записи, результатом вычисления выражения становится значение переменной до ее увеличения. Описание операторов инкремента и декремента представлено в таблице 2.1.

Таблица 2.1 – Операторы инкремента и декремента
ОператорОбозначениеОписание
Преинкремент ++$valueУвеличивает значение $value на единицу.
Постинкремент$value++Возвращает текущее значение $value, после чего увеличивает значение $value на единицу.
Предекремент--$valueУменьшает значение $value на единицу.
Постдекремент$value--Возвращает текущее значение $value, после чего уменьшает значение $value на единицу.

Ниже представлен пример использования операторов инкремента и декремента.

<HTML>

    <HEAD>

    <TITLE>Пример использования инкремента и декремента </TITLE>

    </HEAD>

    <BODY>

        <B>Пример использования инкремента и декремента.</B><BR><BR>

        <?php

            $a=$b=$c=$d=1; echo '$a=$b=$c=$d=1'; echo "<br>";

            echo 'Постинкремент от $a++='.$a++."<BR>";

            echo 'Преинкремент от ++$b='.++$b."<BR>";

            echo 'Постдекремент от $c--='.$c--."<BR>";

            echo 'Предекремент от --$d='.--$d."<BR>";

        ?>

    </BODY>

</HTML>

Реализация данного кода представлена на рисунке 2.16.


Рисунок 2.16 – Использование инкремента и декремента

Таким образом, как видно на рисунке 2.16, между префиксным и постфиксным применением операторов инкремента и декремента имеются различия.

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

В языке РНР имеется несколько операторов, предназначенных для работы с отдельными битами в целых числах. Побитовые операции предназначены для работы (установки, снятия или проверки) с группами битов в целой переменной. Биты целого числа это не что иное, как отдельные разряды того же самого числа, записанного в двоичной системе счисления. Перечень битовых операторов приведен в таблице 2.2.

Таблица 2.2 - Битовые операторы
Оператор Обозначение Описание
Логическое «И» $a & $b результатом являются биты, которые установлены и в $a, и в $b.
Логическое «ИЛИ» $a | $b результатом являются биты, которые установлены в $a или в $b.
Исключающее «ИЛИ» $a ^ $b результатом являются биты, которые установлены только в $а, или только в $b.
Логическое «НЕ» ~$a результатом являются биты, которые не установлены в $а.
Сдвиг влево $a < $b сдвиг битов $a на $b битов влево. Каждый сдвиг эквивалентен умножению на 2.
Сдвиг вправо $a > $b сдвиг битов $a на $b битов вправо. Каждый сдвиг эквивалентен делению на 2.

Результатом применения оператора логического “ИЛИ” к двум целым числам является также целое число. Оно состоит из бит, которые установлены хотя бы у одного из операндов оператора. Операторы двоичного сдвига эквивалентны умножению и делению на степени числа два.

2.3.3 Условный оператор IF

Условные операторы являются наиболее распространенными конструкциями. Как и во всех высокоуровневых языках программирования, в языке РНР используется условный оператор if. Оператор if позволяет организовывать выполнение фрагментов кода по условию.

Синтаксис:

if (expression) statement,

где expression - логическое выражение,

statement - оператор.

Конструкция if содержит логическое выражение “expression”. Если логическое выражение истинно, то оператор “statement”, будет исполнен, а если логическое выражение ложно, оператор “statement” исполнен не будет.

Ниже приведен пример использования оператора if для определения текущей температуры и вывода соответствующего сообщения.

<?php

            if $temperature < 30 echo "Отличный денек";

?>

Для того чтобы при реализации определенного условия выполнялось сразу несколько операторов, в языке РНР предусмотрен составной оператор. Данный оператор содержит произвольное количество простых операторов, заключенных в фигурные скобки.

Ниже представлен пример использования составного оператора внутри оператора if.

<HTML>

    <HEAD>

    <TITLE>Пример использования оператора if</TITLE>

    </HEAD>

    <BODY>

        <?php

            $minutes = 4;

            if ($minutes > 3)

            {echo "Ваше время истекло!<BR>";

            echo "Пожалуйста, положите трубку."; }

        ?>

    </BODY>

</HTML>

Реализация данного кода представлена на рисунке 2.17.


Рисунок 2.17 – Проверка количества минут

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

Операторы сравнения представляют собой множество логических операторов, предназначенных для совместного использования с оператором if. Операторы сравнения позволяют сравнивать значения между собой и, если условие выполнено, возвращают true, а если нет - false. В языке PHP разрешается сравнивать только скалярные переменные. Массивы и объекты в языке PHP сравнивать нельзя.

Операторы сравнения языка РНР приведены в таблице 2.3.

Таблица 2.3 - Операторы сравнения
Оператор Операция Пример Результат
== Равенство $a == $b TRUE, если $a равно $b.
=== Идентичность $a === $b TRUE, если $a равно $b и они одного и того же типа.
!= Неравенство $a != $b TRUE, если $a не равно $b.
<> Неравенство $a <> $b TRUE, если $a не равно $b.
!== Неидентичность $a !== $b TRUE, если $a не равно $b или они не одного и того же типа.
< Меньше $a < $b TRUE, если $a меньше $b.
> Больше $a > $b TRUE, если $a больше $b.
<= Меньше или равно $a <= $b TRUE, если $a меньше или равно $b.
>= Больше или равно $a >= $b TRUE, если $a больше или равно $b.

Ниже приведен пример использования операторов сравнения.

<HTML>

    <HEAD>

    <TITLE>Пример использования операторов сравнения</TITLE>

    </HEAD>

    <BODY>

        <?php

            $temperature = 25;

            if ($temperature ==25)

            echo "Температура равна 25 градусов.";

            if ($temperature != 25)

            echo "Температура не равна 25 градусов.";

            if ($temperature > 25)

            echo "Температура больше 25 градусов.";

        ?>

    </BODY>

</HTML>

Реализация данного кода представлена на рисунке 2.18.


Рисунок 2.18 – Сравнение температуры

Таким образом, как видно на рисунке 2.18, в данном примере с помощью оператора if было определено значение текущей температуры.

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

Логические операторы предназначены исключительно для работы с логическими выражениями и возвращают false или true, в зависимости от условий. Вычисление логических выражений, содержащих такие операторы, идет всегда слева направо.

Логические операторы языка РНР представлены в таблице 2.4.

Таблица 2.4 - Логические операторы
Оператор Операция Пример Результат
and Логическое «И» $a and $b TRUE, если истинно $a и $b.
&& Логическое «И» $a && $b TRUE, если истинно $a и $b.
or Логическое «ИЛИ» $a or $b TRUE, если истинно $a или $b.
|| Логическое «ИЛИ» $a || $b TRUE, если истинно $a или $b.
xor Логическое «Исключающее ИЛИ» $a xor $b TRUE, если истинно $a или $b, но не оба одновременно.
! Логическое «НЕ» !$a TRUE, если $a ложно.

Ниже представлен пример использования логических операторов для проверки температуры в заданных пределах. Здесь используется составное условие, которое выполняется тогда, когда одновременно истинны оба входящих в него выражения.

<HTML>

    <HEAD>

    <TITLE>Пример использования логических операторов </TITLE>

    </HEAD>

    <BODY>

        <?php

            $temperature=27;

            echo "Температура равна $temperature. <BR>";

            if (($temperature>=25) && ($temperature <= 30))

            { echo "Комфортная температура."; }

        ?>

    </BODY>

</HTML>

Реализация данного кода представлена на рисунке 2.19.


Рисунок 2.19 – Проверка температуры

Таким образом, как видно на рисунке 2.19, в данном примере было определено, что температура, равная 27 градусов, является комфортной.

2.3.6 Операторы ELSE и ELSEIF

Оператор else расширяет возможности оператора if по обработке вариантов выражения, когда оно равно false.

Синтаксис:

if (expression) statement1 else statement2,

где statement1 - оператор, который выполняется в том случае, если условие expression верно,

statement2 - оператор, следующий после ключевого слова else, который выполняется в том случае, если условие expression не верно.

Пример использования оператора else приведен ниже.

<HTML>

    <HEAD>

    <TITLE>Пример использования оператора else </TITLE>

    </HEAD>

    <BODY>

        <?php

            $temperature=35;

            echo "Температура равна $temperature. <br>";

            if (($temperature>=25) && ($temperature<=30))

            { echo "Температура комфортна."; }

            else { echo "Температура некомфортна."; }

        ?>

    </BODY>

</HTML>

Реализация данного кода представлена на рисунке 2.20.


Рисунок 2.20 – Проверка комфортной температуры

Таким образом, как видно на рисунке 2.20, в данном примере было определено, что температура, равная 35 градусов является некомфортной.

Оператор if имеет еще одно расширение, которое используется для последовательной проверки нескольких условий. Это оператор elseif, который является комбинацией операторов if и else. Он позволяет выполнить операцию, если значение if равно false, но в отличии else оно выполнится, если выражение elseif равно true.

Синтаксис:

if (expression1) statement1 elseif (expression2) statement2,

где expression1 - первое условие,

statement1 - оператор, выполняемый, если условие expression1 истинно,

expression2 - второе условие, которое проверяется, если первое ложно,

statement2 - оператор, выполняемый, если условие expression2 истинно.

Ниже приведен пример работы оператора elseif.

<HTML>

    <HEAD>

    <TITLE>Пример использования оператора elseif</TITLE>

    </HEAD>

    <BODY>

        <?php

            $score = 4;

            if ($score == 5) echo "Оценка $score - отлично.";

            elseif ($score == 4) echo "Оценка $score – хорошо.";

            elseif ($score == 3) echo "Оценка $score - удовлетворительно.";

            else

            echo "Оценка $score - неудовлетворительно.";

        ?>

    </BODY>

</HTML>

Реализация данного кода представлена на рисунке 2.21.


Рисунок 2.21 – Проверка оценки за экзамен

Таким образом, как видно на рисунке 2.21, в данном примере на экран будет выведена строка “Оценка 4 - хорошо”.

2.3.7 Оператор SWITCH

При проверке большого количества условий даже использование оператора if… elseif может быть громоздким. В таких случаях используется оператор switch.

Оператор switch сравнивает переменную или выражение с различными значениями и выполняет различные фрагменты кода в зависимости от того, чему будет равно значение выражения.

Синтаксис:

switch (vir)

{ case 1:

break;

case 2:

break;

case n:

break;

default: },

где vir - переменная или выражение,

case - ключевое слово, после которого перечисляются возможные варианты значений,

break - прерывание выполнения проверки данного условия,

default - соответствует всем значениям, которые не удовлетворяют другим вариантам.

При работе оператора switch можно также использовать несколько подряд идущих конструкций case.

Ниже приведен пример работы оператора switch для проверки принадлежности температуры к различным диапазонам.

<HTML>

    <HEAD>

    <TITLE>Пример использования оператора switch </TITLE>

    </HEAD>

    <BODY>

        <?php

            $temperature=27;

            echo "Температура равна $temperature. <BR>";

            switch($temperature)

            { case 25:

            case 26:

            echo "Приятная погода";

            break;

            case 27:

            case 28:

            echo "Все еще приятная погода";

            break;

            case 29:

            case 30:

            echo "Становится жарковато";

            break;

            default: echo "Температура вне заданных пределов"; }

        ?>

    </BODY>

</HTML>

Пример реализации данного кода представлен на рисунке 2.22.


Рисунок 2.22 – Оценка состояния погоды по введенной температуре

Таким образом, как видно на рисунке 2.22, в данном примере с помощью оператора switch было определено, что температура, равная 27, является приятной.

2.3.8 Операторы цикла в PHP

2.3.8.1 Цикл FOR

Оператор for является популярным оператором цикла в языке PHP.

Синтаксис:

for (expression1; expression2; expression3) statement,

где expression1 - инициализации цикла, в нем выполняется присваивание начального значения определенной переменной (счетчик цикла),

expression2 - условие повторения цикла,

expression3 - выражение, которое выполняется каждый раз после тела цикла,

statement - оператор, до выполнения которого проверяется условие.

Ниже приведен пример работы цикла for.

<HTML>

    <HEAD>

    <TITLE>Пример использования оператора for </TITLE>

    </HEAD>

    <BODY>

        <?php

            for ($counter = 0; $counter < 5; $counter++)

            { echo "Эта строка будет выведена пять раз <BR>";}

        ?>

    </BODY>

</HTML>

Реализация данного кода представлена на рисунке 2.23.


Рисунок 2.23 – Вывод строки определенное количество раз

Таким образом, как видно на рисунке 2.23, в данном примере использовался оператор for для вывода заданной строки в цикле пять раз.

В языке PHP предусмотрена возможность досрочного перехода к началу цикла, не выполняя всего тела цикла целиком. Для этого используется оператор continue.

Ниже представлен пример работы оператора continue.

<HTML>

    <HEAD>

    <TITLE>Пример использования оператора continue</TITLE>

    </HEAD>

    <BODY>

        <?php

            $value = 1;

            for ($value = -2; $value < 3; $value++)

            { if($value == 0)

            {continue; }

            echo "1 / $value=", 1 / $value, "<BR>"; }

        ?>

    </BODY>

</HTML>

Реализация данного кода представлена на рисунке 2.24.


Рисунок 2.24 - Нахождение частного единицы

Таким образом, как видно на рисунке 2.24, в данном примере с помощью оператора continue выводятся числа, обратные счетчику цикла.

2.3.8.2 Цикл WHILE

Оператор while является простейшим циклом в языке PHP. Цикл проверяет некоторое условие и выполняется до тех пор, пока оно не станет истинным. Условие проверяется перед выполнением тела цикла, так что, если оно будет ложным с самого начала, цикл не выполнится ни одного раза.

Синтаксис:

while (expression) statement,

где expression - условие,

statement - оператор, образующий тело цикла.

Оператор while используется в том случае, когда в цикле отсутствует явно заданный счетчик.

Ниже представлен пример работы цикла while.

<HTML>

    <HEAD>

    <TITLE>Пример использования оператора while </TITLE>

    </HEAD>

    <BODY>

        <?php

            $value = 1;

            while ($value < 10)

            { echo "Значение $value = ",$value, "<BR>";

            $value += 2; }

        ?>

    </BODY>

</HTML>

Реализация данного кода представлена на рисунке 2.25.


Рисунок 2.25 – Вывод на экран нечетных чисел от 1 до 10

Таким образом, как видно на рисунке 2.25, в данном примере осуществляется вывод на экран всех нечетных цифр от одного до десяти.

2.3.8.3 Цикл DO... WHILE

Наряду с циклом while, в языке PHP используется цикл do… while. Данный цикл аналогичен циклу while. Основное его отличие состоит в том, что значение логического выражения проверяется не до, а после окончания итерации, таким образом, что цикл выполнится хоть один раз.

Синтаксис:

do statement while (condition),

где statement - оператор, образующий тело цикла,

condition - условие.

Ниже приведен пример работы оператора цикла do… while.

<HTML>

    <HEAD>

    <TITLE>Пример использования оператора do while </TITLE>

    </HEAD>

    <BODY>

        <?php

            echo "<B>Вывод всех нечетных цифр до десяти.</B><BR>";

            $value = 1;

            do { echo $value, "<BR>";

            $value += 2; }

            while ($value<10)

        ?>

    </BODY>

</HTML>

Реализация данного кода представлена на рисунке 2.26.


Рисунок 2.26 – Вывод на экран нечетных чисел от 1 до 10

2.3.8.4 Цикл FOREACH

Цикл foreach представляет собой разновидность цикла for, включенную в язык PHP для упрощения перебора элементов массива.

Синтаксис:

foreach (array as $value) statement,

где $value - значение элемента массива,

statement - оператор, следующий за оператором цикла.

Ниже представлен пример работы оператора foreach.

<HTML>

    <HEAD>

    <TITLE> Пример использования оператора foreach</TITLE>

    </HEAD>

    <BODY>

        <?php

            $arr = array ("яблоки", "апельсины", "бананы");

            foreach ($arr as $value)

            { echo "Текущий фрукт: ".$value. "<BR>"; }

        ?>

    </BODY>

</HTML>

Реализация данного кода представлена на рисунке 2.27.


Рисунок 2.27 – Вывод на экран элементов массива

Таким образом, как видно на рисунке 2.27, в данном примере использовался оператор foreach для вывода на экран элементов массива.

2.4 Функции работы с данными

2.4.1 Функции работы с датой и временем

2.4.1.1 Функция checkdate

Функция checkdate проверяет правильность заданной даты.

Синтаксис:

int checkdate(int $month, int $day, int $year),

где $month - месяц,

$day - день,

$year - год.

Функция checkdate проверяет правильность даты, указанной в ее аргументах как “month”.“day”.“year” (месяц. число. год). Данная функция возвращает true, если дата правильная или false, в обратном случае. Дата считается правильной, если год указан в диапазоне между 1 и 32767 годом включительно, месяц указан между цифрами 1 и 12 месяцем включительно, а день находится в диапазоне дней заданного месяца.

Ниже представлен пример работы функции checkdate.

<HTML>

    <HEAD>

    <TITLE> Пример использования функции checkdate</TITLE>

    </HEAD>

    <BODY>

        <?php

            $month=1; // задание месяца

            $day=10; // задание дня

            $year=2002; // задание года

            echo "Дата: $month.$day.$year<br>";

            if(checkdate($month,$day,$year)) // проверка даты

            echo "Такая дата существует!";

            else echo "Такой даты не существует!";

        ?>

    </BODY>

</HTML>

Результат работы данного кода представлен на рисунке 2.28.


Рисунок 2.28 – Проверка существования даты

Таким образом, как видно на рисунке 2.28, в данном примере осуществлялась проверка существования даты 1.10.2002, и на экран было выведено сообщение “Такая дата существует”, так как функция checkdate возвратила true.

2.4.1.2 Функция date

Функция date задает формат локального времени и даты.

Синтаксис:

string date(string $format [, int $timestamp]),

где $format - формат,

$timestamp - временная метка.

Функция date возвращает строку, содержащую дату и время, отформатированную согласно строке “$format”. Данная функция использует временную метку “$timestamp” или текущее локальное время, если временная метка не задана. В строке “$format” могут быть использованы следующие символы:

- a - “до” и “после” полудня: “am” или “pm”,

- A - “До” и “После” полудня: “AM” или “PM”,

- d - день месяца, две цифры (на первом месте нуль) (от 01 до 31),

- D - день недели текстовый, три буквы; например “Fri”,

- j - день месяца, одна-две цифры без начальных нулей (от 1 до 31),

- F - месяц текстовый, длинный; например “January”,

- h - час, 12-часовой формат (на первом месте нуль) (от 01 до 12),

- H - час, 24-часовой формат (на первом месте нуль) (от 00 до 23),

- g - час, 12-часовой формат без нулей (от 1 до 12),

- G - час, 24-часовой формат без нулей (от 0 до 23),

- l - день недели текстовый, длинный; например “Friday”,

- m - месяц, две цифры (на первом месте нуль) (от 01 до 12),

- Y - год цифровой, четыре цифры; например 1999,

- y - год цифровой, две цифры; например 99,

- w - порядковое число дня в неделе (от 0-воскресенье до 6-суббота).

Остальные символы возвращаются в аргументе “$format” “как есть”.

Ниже представлен пример работы функции date.

<HTML>

    <HEAD>

    <TITLE> Пример использования функции date</TITLE>

    </HEAD>

    <BODY>

        <?php

            echo date("Сегодня d.m.Y");

        ?>

    </BODY>

</HTML>

Результат работы данного кода представлен на рисунке 2.29.


Рисунок 2.29 – Вывод даты определенного формата

Таким образом, как видно на рисунке 2.29, в данном примере с помощью функции date, на экране отображается дата 19.04.2010.

2.4.1.3 Функция getdate

Функция getdate получает информацию о дате и времени.

Синтаксис:

array getdate(int $timestamp),

где $timestamp - дата в секундах.

Функция getdate возвращает ассоциативный массив, содержащий информацию о дате со следующими элементами:

- “minutes” - минуты,

- “hours” - часы,

- “mday” - день месяца,

- “wday” - день недели цифровой,

- “mon” - месяц цифровой,

- “year” - год цифровой,

- “weekday” - день недели текстовый, полный; например “Friday”,

- “month” - месяц текстовый, полный; например “January”,

Ниже представлен пример работы функции getdate.

<HTML>

    <HEAD>

    <TITLE> Пример использования функции getdate </TITLE>

    </HEAD>

    <BODY>

        <?php

            $date = getdate(time());

            echo "Сегодня $date[wday] день недели.<br>";

            echo "Текущая дата: $date[mday].$date[mon].$date[year]";

        ?>

    </BODY>

</HTML>

Реализация данного кода представлена на рисунке 2.30.


Рисунок 2.30 – Вывод текущей даты и дня недели

Таким образом, как видно на рисунке 2.30, в данном примере с помощью функции getdate на экране отобразилась текущая дата 29.5.2010 и указано, что это шестой день недели.

2.4.2 Логические функции определения типа переменной

2.4.2.1 Функция is_null

Функция is_null проверяет, является ли переменная пустой.

Синтаксис:

bool is_null(mixed $var),

где $var - имя переменной.

Функция is_null проверяет переменную “$var”, заданную в ее параметре. Функция возвращает true, если переменной не существует или присвоено пустое значение null и false в обратном случае.

Ниже представлен пример работы функции is_null.

<HTML>

    <HEAD>

    <TITLE> Пример использования функции is_null</TITLE>

    </HEAD>

    <BODY>

        <?php

            if (is_null($var)) echo "Переменной с именем var не существует!";

            else echo "Переменная var существует!";

        ?>

    </BODY>

</HTML>

Результат работы данного кода представлен на рисунке 2.31.


Рисунок 2.31 – Пример существования переменной

Таким образом, как видно на рисунке 2.31, в данном примере с помощью функции is_null было установлено, что заданной переменной не существует.

2.4.2.2 Функция is_integer

Функция is_integer определяет, является ли переменная целым числом.

Синтаксис:

bool is_integer(mixed $var),

где $var - имя переменной.

Функция is_integer возвращает true, если переменная “$var” является типа integer или false в обратном случае.

2.4.2.3 Функция is_string

Функция is_string определяет, является ли переменная строкой.

Синтаксис:

bool is_string(mixed $var),

где $var - имя переменной.

Функция is_string определяет, является ли переменная

“$var”, переданная в ее параметре, строкой и возвращает true, если “$var” это строка или false в обратном случае.

2.4.3 Функции переменных

2.4.3.1 Функция gettype

Функция gettype получает тип переменной.

Синтаксис:

string gettype (mixed $var),

где $var - имя переменной.

Функция gettype возвращает тип заданной переменной “$var”.

Ниже представлен пример работы функции gettype.

<HTML>

    <HEAD>

    <TITLE> Пример использования функции gettype</TITLE>

    </HEAD>

    <BODY>

        <?php

            $var = "Привет!";

            $type = gettype($var); // определение типа переменной

            echo "<B>Переменная var имеет тип:</B> $type";

        ?>

    </BODY>

</HTML>

Результат работы данного кода представлен на рисунке 2.32.


Рисунок 2.32 – Вывод на экран типа переменной

Таким образом, как видно на рисунке 2.32, в данном примере с помощью функции gettype было установлено, что заданная переменная имеет тип string.

2.4.3.2 Функция empty

Функция empty определяет, есть ли у переменной какое либо значение.

Синтаксис:

int empty(mixed var),

где $var - имя переменной.

Функция empty определяет, есть ли значение у переменной “$var”, переданной в ее параметре и возвращает false, если переменная существует и имеет непустое (ненулевое) значение, и true в обратном случае.

Ниже представлен пример работы функции empty.

<HTML>

    <HEAD>

    <TITLE> Пример использования функции empty</TITLE>

    </HEAD>

    <BODY>

        <?php

            $var=0;

            if(empty($var))

            echo "Переменная $var - либо равна 0, либо не имеет значения";

            else { echo "$var имеет значение"; };

        ?>

    </BODY>

</HTML>

Результат работы данного кода представлен на рисунке 2.33.


Рисунок 2.33 – Проверка, есть ли у переменной значение

Таким образом, как видно на рисунке 2.33, в данном примере с помощью функции empty было определено, что заданная переменная либо равна нулю, либо не имеет значения.

2.4.3.3 Функция isset

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

Синтаксис:

int isset(mixed $var),

где $var - имя переменной.

Функция isset возвращает true, если переменная “$var”, переданная в ее параметре, существует и false в обратном случае.

Ниже представлен пример работы функции isset.

<HTML>

    <HEAD>

    <TITLE> Пример использования функции isset</TITLE>

    </HEAD>

    <BODY>

        <?php

            $var = "Привет!";

            if (isset($var)) echo "Переменная var существует!";

            else echo "Переменной с именем var не существует!";

        ?>

    </BODY>

</HTML>

Результат работы данного кода представлен на рисунке 2.34.


Рисунок 2.34 – Проверка существования переменной

Таким образом, как видно на рисунке 2.34, в результате проверки c помощью функции isset оказалось, что заданная переменная существует.