Анимация
JavaScript


Главная  Библионтека 

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 [ 44 ] 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189

( Замечание

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

Арифметические операции

□ a + b - сложение

□ a - b - вычитание

□ a * b - умножение

□ a / b - деление

□ a % b - остаток от деления a на b

Какой-то текст с <b>тэгами </b> - этот пример НЕ работает! EOD;

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

Вызов внешней программы

Последняя строковая "константа" - строка в обратных апострофах (например, команда), заставляет PHP выполнить команду операционной системы и то, что она вывела, подставить на место строки в обратных апострофах. Вот так, например, мы можем в системе Windows узнать содержимое текущего каталога, которое вхдает команда dir:

$st=~dir~;

echo "<pre>$st</pre>";

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

Операции

На самом деле, к этому моменту вы уже знакомы практически со всеми операциями над переменными и выражениями в PHP. И все же я приведу здесь их полный список с краткими комментариями, заменяя выражения-операнды буквами a и b.



( Замечание

Обратите внимание на то, что в левой части всех присваивающих операторов

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

$a = 10;

$a += 4; 1бёаааё6й ё $a 4

$s = "Hello";

$s .= " world!"; бахабй a $s "Hello world!"

Думаю, не стоит особо на них задерживаться.

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

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

□ $a++ - увеличение переменной $a на 1;

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

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

Операция деления / возвращает целое число (то есть, результат деления нацело), если оба выражения a и b - целого типа (или же строки, выглядящие как целые числа), в противном случае результат будет дробнхм. Операция вхчисления остатка от деления % работает только с целыми числами, так что применение ее к дробным может привести к, мягко говоря, нежелательному результату.

Строковые операции

□ a.b - слияние строк a и b

□ a[n] - символ строки в позиции n

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

Операции присваивания

Основным из этой группы операций является оператор присваивания =. Еще раз напомню, что он не обозначает "равенство", а говорит интерпретатору, что значение правого выражения должно быть присвоено переменной слева. Например:

$a = ($b = 4) + 5;

После этого $a равно 9, а $b равно 4.



Операции сравнения

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

□ a == b - истина, если a равно b.

$a=10; $b=$a++;

echo "a=$a, b=$b"; айааааб a=11, b=10

Как видите, сначала переменной $b присвоилось значение переменной $a, а уж затем последняя была инкрементирована. Впрочем, выражение, значение которого присваивается переменной $b, может быть и сложнее - в любом случае, инкремент $a произойдет только после его вычисления.

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

$a=10; $b=--$a;

echo "a=$a, b=$b"; auaaaao a=9, b=9

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

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

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

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

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

□ ~ a - результат, у которого на месте единиц в a стоят нули, и наоборот.

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

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



0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 [ 44 ] 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189