Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод указания PHP (2012 год) Дзгоев, Бетрозов,...doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.13 Mб
Скачать

Операции инкремента и декремента

Для операций, $а+=1 и $b-=1 в связи с их чрезвычайной распространенностью в РНР ввели, как и в Си, специальные операторы:

$а++ — увеличение переменной, $а на 1;

$а -- — уменьшение переменной, $а на 1.

Как и в языке Си, эти операторы увеличивают, или уменьшают значение переменной, а в выражении возвращают значение переменной $а до изменения.

Пример 5

<?php

$а=10;

$b=$а++;

echo "a=$a, b=$b"; // выведет а=11, b=10

?>

В примере 5 сначала переменной $b присвоилось значение переменной $а, а затем последняя была инкрементирована (увеличилась на 1). Выражение, значение которого присваивается переменной $b, может быть и сложнее — в любом случае, инкремент $а произойдет только после его вычисления.

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

Пример 6

<?php

$а=10;

$b= --$а;

echo "а=$а, b=$b"; // выведет а=9, b=9

?>

Операторы инкремента и декремента на практике применяются очень часто. Например, они встречаются практически в любом цикле for.

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

Эти операции предназначены для работы (установки/снятия/проверки)

групп битов в целой переменной.

Биты целого числа — это отдельные разряды того же самого числа, записанного в двоичной системе счисления. Например, в двоичной системе число 12 будет выглядеть как 1100, а 2 — как 10, так что выражение 12|2 вернет нам число 14 (1110 в двоичной записи). Если переменная не целая, то она вначале округляется, а уж затем к ней применяются перечисленные ниже операторы.

а & b - результат — число, у которого установлены только те биты, которые установлены и у а, и у b одновременно.

Пример 7

<?php

8 4 2 1

$a=13; // в двоичном виде 1101 (разряд 8+разряд 4+разряд 1= 13)

8 4 2 1

$b=5; // в двоичном виде 0101 (разряд 4 + разряд 1 = 5)

8 4 2 1

$c=$a&$b; // 13&5 (1101&0101) = 5 (0101) = разряд 4 + разряд 1 = 5

echo"$c"; // вывод полученного результата = 5 (0101)

?>

а | b - результат — число, у которого установлены только те биты, которые установлены либо в а, либо в b (либо одновременно).

Пример 8

<? php

8 4 2 1

$a=13; // в двоичном виде 1101 (разряд 8 + разряд 4 + разряд 1 = 13)

8 4 2 1

$b=5; // в двоичном виде 0101 (разряд 4 + разряд 1 = 5)

$c=$a|$b; // 13|5 (1101 | 0101) =13 (1101) = разряд 8+ разряд 4+ разряд 1 = 13

echo"$c"; // вывод полученного результата = 13 (1101)

?>

а << b — результат — число, полученное поразрядным сдвигом, а на b битов влево.

Пример 10

<?php

$a=3; // в двоичном виде число 3 = (0011)

$b=2; // в двоичном виде число 2 = (0010), число 2 показывает на сколько разряд 1 будет сдвинут. Если 2, то на 2 позиции.

$c=$a<<$b;

echo"$c";// вывод полученного результата = 12 (1100)

?>

а >> b — аналогично, только вправо.

Пример 11

<?php

$a=3;

$b=2;

$c=$a>>$b;

echo"$c";

?>// Аналогично, только вправо