|
язательный параметр $case_sen равен true, то в дальнейшем в програм-
ме регистр букв константы учитывается, в противном случае — не учитывается (по
умолчанию, как мы видим, регистр учитывается). Созданная константа не может
быть уничтожена или переопределена.
Например:
define("pi",3.14);
define("str","Test string");
echo sin(pi/4);
echo str;
Прошу обратить внимание на кавычки, которыми должно быть обрамлено имя кон-
станты при ее определении. А также на то, что нельзя дважды определять
константу с
одним и тем же именем — это породит ошибку во время выполнения программы.
Проверка существования константы
В PHP существует также функция, которая проверяет, существует ли (была ли опре-
делена ранее) константа с указанным именем. Вот она.
bool defined(string $name)
Возвращает true, если константа с именем $name была ранее определена.
Впрочем, я ни разу не видел программы, которая задействовала бы эту возможность.
Но для полноты картины я эту функцию все-таки здесь привел.
Выражения
Выражения — это один из "кирпичей", на которых держится здание PHP. Действи-
тельно, практически все, что вы пишете в программе — это выражение. Мне нравит-
ся следующее определение понятия "выражение": "нечто, имеющее определенное зна-
чение". И обратно: если что-то имеет значение, то это "что-то" есть выражение.
Самый простой пример выражения — переменная или константа, стоящая, скажем, в
правой части оператора присваивания. Например, цифра 5 в операторе
$a=5;
есть выражение, т. к. оно имеет значение 5. После такого присваивания мы вправе
ожидать, что в $a окажется 5. Теперь, если мы напишем
$b=$a;
то, очевидно, в $b окажется также 5, ведь выражение $a в правой части оператора
имеет значение 5.
Глава 7. Переменные, константы, выражения 131
Посмотрим еще раз на этот пример. Помните, я говорил, что практически все, из
чего
мы составляем программу — это выражения? Так вот, $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;
Итак, вот эти операторы:
r $b=intval(выражение) или $b=(int)(выражение)
Переводит значение выражения в целое число и присваивает его $b.
r $b=doubleval(выражение) или $b=(double)(выражение)
Переводит значение в действительное число и присваивает его $b.
r $b=strval(выражение) или $b=(string)(выражение)
Часть III. Основы языка PHP 132
Переводит значение выражения в строку.
r $b=(bool)(выражение)
Преобразует значение вы
|
|