Шаг 10 - Операции с переменными

Пора разобраться, что же можно делать с переменными. А то работаем с ними работаем, а как не знаем... Я думаю вы и без меня знаете такие элементарные вещи, но по закону жанра описать это обязан.

С переменными можно производить арифметические операции, операции сравнения, и операции булевой алгебры. С арифметикой всё очень просто:

+ - сложение.
- - вычитание.
* - умножение.
/ - деление.
% - взятие остатка от деления.
** - возведение в степень.
. - конкатенация (объединение строк).
= - приравнивание.
+= - сложение с приравниванием. $x=$x+$y эквивалентно $x+=$y.
-= - вычитание с приравниванием. $x=$x-$y эквивалентно $x-=$y.
*= - умножение с приравниванием. $x=$x*$y эквивалентно $x*=$y.
/= - деление с приравниванием. $x=$x/$y эквивалентно $x/=$y.
%= - взятие остатка от деления с приравниванием. $x=$x%$y эквивалентно $x%=$y.
.= - конкатенация с приравниванием. $x=$x.$y эквивалентно $x.=$y.
++ - инкремент (увеличение на еденицу). $x++ эквивалентно $x=$x+1.
-- - декремент (уменьшение на еденицу). $x-- эквивалентно $x=$x-1.

Вот и всё. Единственный интересный момент это последние две операции. Они имеют две формы записи - префиксную и постфиксную. Попробуйте выполнить следующую операцию print $x++, если $x равен пяти, то 5 выведено и будет. А теперь попробуйте так print ++$x, будет выведено 6.

Теперь о сравнении:

== - равно?
!= - не равно?
> - больше?
< - меньше?
>= - больше или равно?
<= - меньше или равно?

Сравнение строк происходит маленько по другому:

eq - равно?
ne - не равно?
gt - больше?
lt - меньше?
ge - больше или равно?
le - меньше или равно?

На все эти вопросы существуют только два ответа - истина или ложь.

Булевая алгебра:

& - логическое И.
| - логическое ИЛИ.
^ - исключающее ИЛИ.
! - логическое отрицание.
>> - побитный сдвиг вправо. $x>>4 - сдвигает побитно вправо значение в левой части ($x) на кол-во бит указаное в правой (4 бита в данном случае).
<< - побитный сдвиг влево. $x<<4 - сдвигает побитно влево значение в левой части ($x) на кол-во бит указаное в правой (4 бита в данном случае).

Операции будевой алгебры обычно (в основном &, |, !) применяются в операторах ветвления.

Например:

# если $x ложно, выполнять
if(!$x) {
	...
}

# если $x меньше десяти И больше пяти, выполнять.
if(($x<10) & ($x>5)) {
	...
}

# если $x равен 10 ИЛИ равен пяти, выполнять.
if(($x==10) | ($x==5)) {
	...
}

Операторы & и | имееют ещё две формы записи. Символьная: & - and, | - or. И ещё одна логическая, применяемая чаще за счёт своей удобности. && - работает так, что если при вычислении стоящее слева выражение возвращает false, то правое уже не вычисляется. || - аналогичен.

Более подробно это рассказывать не буду... Когда понадобится буду объяснять в процессе. Есть ещё два замечательных оператора - =~ и .., но их мы разберём позже.


Предыдущий Шаг | Оглавление
Автор Горностаев Сергей aka Deadcat - 05.02.2004