РНР 5 в подлинникеСтраница 113 из 554 |
||
|
ГЛАВА 1 О ![]() Выражения и операции РНР Листинги данной главы можно найти в подкаталоге ехрг. В предыдущей главе мы подробно рассмотрели переменные и типы данных, которыми может оперировать программа. Продолжим обсуждение основных возможностей языка программирования РНР. Выражения Выражение — это один из "кирпичей", на которых держится здание РНР. Действительно, практически все, что вы пишете в программе, — это выражения. Нам нравится следующее определение понятия "выражение": нечто, имеющее определенное значение. И обратно: если что-то имеет значение, то это "что-то" есть выражение. Самый простой пример выражения — переменная или константа, стоящая, скажем, в правой части оператора присваивания. Например, цифра 5 в операторе Sa = 5; есть выражение, т. к. оно имеет значение 5. После такого присваивания мы вправе ожидать, что в Sa окажется 5. Теперь, если мы напишем $Ь = $а; то, очевидно, в $ь окажется также 5, ведь выражение $а в правой части оператора имеет значение 5. Посмотрим еще раз на приведенный пример. Помните, мы говорили, что практически все, из чего мы составляем программу, — это выражения? Так вот, $ь = ?а — тоже выражение! (Впрочем, это не будет сюрпризом для знатоков С или Perl.) Нетрудно догадаться, какое оно имеет значение: 5. А это значит, что мы можем написать нечто вроде следующих команд: $а = ($Ь = 10); // или просто $а = $Ь = 10 При этом переменным $а и $ь присвоится значение 10. А вот еще пример, уже менее тривиальный: $а = 3 * sin($b = $с + 10) + $d; Гпава 10. Выражения и операции РНР 231 Что окажется в переменных после выполнения этих команд? Очевидно, то же, что и в результате работы следующих операторов: $Ь = $с + 10; $а = 3 * sin($c + 10) + Sol; Мы видим, что в РНР при вычислении сложного- выражения можно (если какая-то его часть понадобится нам впоследствии) задавать переменным значения этой части прямо внутри оператора присваивания. Такой прием может действительно сильно упростить жизнь и сократить код программы, "читабельность" которой сохранится на прежнем уровне, поэтому советуем им иногда пользоваться. Совершенно точно можно сказать, что у любого выражения есть тип его значения. Например: $а = 10 * 20; $Ь = "" . (10 * 20); echo "$а:".gettype($а).", $b:".gettype($b); // выведет "200:integer, 200:string" Чтобы преобразовать одно значение в другое (например, нам может не понравиться, что $ь — типа string, хотя содержит целое число), используются операторы преобразования типов. Эти операторы доступны как в функциональной, так и в префиксной операторной форме. Например, следующие две инструкции эквивалентны: $а = intval($b); $а = (int)$b; Итак, перечислим операторы преобразования типов. П $b = intval (выражение) ИЛИ $b = (int) (выражение) Переводит значение выражения в целое число и присваивает его $ь. О $b = doubleval(выражение) ИЛИ $b = (double)(выражение) Переводит значение в действительное число и присваивает его $ь. П $b = strval (выражение) ИЛИ $b = (string) (выражение) Переводит значение выражения в строку. П $b = (bool) (выражение) Преобразует значение выражения в логический тип. То есть, после выполнения этого оператора в $ь окажется либо true, либо false. Логические выражения Логические выражения — это выражения, у которых могут быть только два значения: ложь и истина (или, что почти то же самое, 0 и 1). Что, поверили? Напрасно — на самом деле абсолютно любое выражение может рассматриваться как логическое в "логическом" же контексте (например, как условие для конструкции if-eise). Ведь, как уже говорилось, в качестве истины может выступать любое ненулевое число, непустая строка и т. д., а под ложью подразумевается все остальное. |
| |
|
В начало ←предыдущая следующая→ ... 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 ... | ||