РНР 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). Ведь, как уже говорилось, в качестве истины может выступать любое ненулевое число, непустая строка и т. д., а под ложью подразумевается все остальное.




  Hostland.Ru

 «Бесплатный хостинг Hostland.Su» © 2006