Анимация
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

Константа отличается от переменной тем, что, во-первых, ей нигде в программе нельзя присвоить значение больше одного раза, а во-вторых, ее имя не предваряется знаком $ , как это делается для переменных. Например:

Предположим, определена константа PI, равная 3.146 $a=2.34*sin(3*PI/8)+5; использование константы echo "Это число PI"; в1ведет "Это число PI"

echo "Это число ".PI; выведет "Это число 3.14"

То, что не надо писать "доллар" перед именем константы - это, конечно хорошо. Однако, как мы можем видеть из примера, есть и минусы: мы уже не можем использовать имя константы непосредственно в текстовой строке.

Предопределенные константы

Константы бывают двух типов: одни - предопределенные (то есть устанавливаемые самим интерпретатором), а другие определяются программистом. Существуют несколько предопределенных констант.

□ FILE

Хранит имя файла программы, которая выполняется в данный момент.

□ LINE

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

□ PHP VERSION

Версия интерпретатора PHP.

□ PHP OS

Имя операционной системы, под которой работает PHP.

□ TRUE или true

Эта константа нам уже знакома и содержит значение "истина".

□ FALSE или false Содержит значение "ложь".

Определение констант

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



Выражения

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

Самый простой пример выражения - переменная или константа, стоящая, скажем, в правой части оператора присваивания. Например, цифра 5 в операторе

$a=5;

есть выражение, т. к. оно имеет значение 5. После такого присваивания мы вправе ожидать, что в $a окажется 5. Теперь, если мы напишем

$b=$a;

то, очевидно, в $b окажется также 5, ведь выражение $a в правой части оператора имеет значение 5.

void define(string $name, string $value, bool $case sen=true);

Определяет новую константу с именем, переданным в $name, и значением $value. Если необязательный параметр $case sen равен true, то в дальнейшем в программе регистр букв константы учитывается, в противном случае - не учитывается (по умолчанию, как мы видим, регистр учитывается). Созданная константа не может быть уничтожена или переопределена.

Например:

define("pi",3.14); define("str","Test string"); echo sin(pi/4); echo str;

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

Проверка существования константы

В PHP существует также функция, которая проверяет, существует ли (была ли определена ранее) константа с указанным именем. Вот она.

bool defined(string $name)

Возвращает true, если константа с именем $name была ранее определена.

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



Посмотрим еще раз на этот пример. Помните, я говорил, что практически все, из чего мы составляем программу - это вхражения? Так вот, $b=$a -тоже вхражение! (Впрочем, это не будет сюрпризом для знатоков Си или Perl). Нетрудно догадаться, какое оно имеет значение: 5 (тут просто не может быть никаких других вариантов, не правда ли?). А это значит, что мы можем написать что-то типа следующих команд:

$a=($b=10); или просто $a=$b=10

При этом переменным $a и $b присвоится значение 10. А вот еще пример, уже менее тривиальный:

$a=3*sin($b=$c+10)+$d;

Что окажется в переменных после выполнения этих команд? Очевидно, то же, что и в результате работы следующих операторов:

$b=$c+10;

$a=3*sin($c+10)+$d;

Мы видим, что в PHP при вычислении сложного выражения можно (если какая-то его часть понадобится нам впоследствии) задавать переменным значения этой части прямо внутри оператора присваивания. Этот прием может действительно сильно упростить жизнь и сократить код программы, "читабельность" которой сохранится на прежнем уровне, так что советую им иногда пользоваться.

Совершенно точно можно сказать, что у любого выражения есть тип его значения. Например:

$a=10*20; $b="".(123*3);

echo "$a:",gettype($a)," $b:",gettype($b);

выведет "200:integer 200:string"

Чтобы преобразовать одно значение в другое (например, нам может не понравиться, что $b - типа string, хотя содержит целое число), используются операторы преобразования типов. Эти операторы доступны как в функциональной, так и в префиксной операторной форме. Например, следующие две инструкции эквивалентны:

$a = intval($b);

$a = (int)$b;

Итак, вот эти операторы:

□ $b=intval( выражение) или $b=(int)( выражение) Переводит значение выражения в целое число и присваивает его $b.

□ $b=doubleval( выражение) или $b=(double)( выражение) Переводит значение в действительное число и присваивает его $b.

□ $b=strval( выражение) или $b=(string)( выражение)



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