Привет, Гость!
home login register
[+] Купить Рекламу
Хостинг для тебя! Заходи не пожалеешь
Что мы делаем полезного на официальном сайте WAP-поддержки? Подробно ...
Вступайте в нашу группу ВКОНТАКТЕ
Поздравляем, новичка с ID:1000
Как самомусделать QR-код
IT новости: в Windows новая опасная уязвимость
Проблемы восприятия IT
Как подтвердить авторство в Google

Учебник PHP #3
1 2 3 ... 6 >>
ГЛАВА 3

Выражения, операторы и управляющие конструкции

В этой главе представлены некоторые аспекты, играющие исключительно важную роль в любом языке программирования, — а именно, выражения, операторы и управляющие конструкции. Этот материал необходим в первую очередь при создании больших и сложных приложений РНР. Если вы уже знакомы с такими языками, как С и Java, эта глава всего лишь напомнит известные вам понятия. Если же вы впервые встречаетесь с этими терминами и понятиями, которые они обозначают, знание материала этой главы будет безусловно необходимо для понимания остальных глав книги.

Выражения

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

Операнды

Операнд представляет собой некоторую величину, обрабатываемую в программе. Операнды могут относиться к любому типу данных, представленному в главе 2. Вероятно, вы уже знакомы с концепциями обработки и использования операндов не только в повседневных математических вычислениях, но и по прежнему опыту программирования. Примеры операндов:

$а++; // $а - операнд

$sum = $val1 + $val2; // $sum. $val1 и $val2 - операнды

Операторы

Оператор представляет собой символическое обозначение некоторого действия, выполняемого с операндами в выражении. Многие операторы известны любому программисту, но вы должны помнить, что РНР выполняет автоматическое преобразование типов на основании типа оператора, объединяющего два операнда, — в других языках программирования это происходит не всегда.

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

Таблица 3.1. Операторы РНР
Оператор Ассоциативность Цель
( ) - Изменение приоритета
new - Создание экземпляров объектов
! ~ П

Логическое отрицание, поразрядное отрицание
++ -- П Инкремент, декремент
@ П Маскировка ошибок
/ * % Л Деление, умножение, остаток
+ - . Л Сложение, вычитание, конкатенация
<< >> Л Сдвиг влево, сдвиг вправо (поразрядный)
< <= > >= - Меньше, меньше или равно, больше, больше или равно
== != === <> - Равно, не равно, идентично, не равно
& ^ | Л Поразрядные операции AND, XOR и OR
&& || Л Логические операции AND и OR
?: П Тернарный оператор
= += *= /= .= П Операторы присваивания
%= &= |= ^=
<<= >>=
AND XOR OR Л Логические операции AND, XOR и OR

После знакомства с концепциями операторов и операндов следующие примеры выражений выглядят значительно понятнее:

$а = 5; // Присвоить целое число 5 переменной $а

$а = "5": // Присвоить строковую величину "5" переменной $а

$sum = 50 + $some_int; // Присвоить сумму 50 + $some_int переменной $sum

Swine = "Zinfandel"; // Присвоить строку "Zinfandel" переменной $wine

$inventory++: // Увеличить значение $inventory на 1

Объединяя операторы и операнды, вы получите более сложные выражения для выполнения нетривиальных вычислений. Пример:

$total_cost = $cqst + (Scost * 0.06): // прибавить к цене 6-процентный налог

Приоритет операторов

Приоритет является характеристикой операторов, определяющей порядок выполнения действий с окружающими операндами. В РНР используются те же правила приоритета, что и в школьном курсе математики. Пример:

$total_cost = $cost + $cost * 0.06;

Приведенная команда эквивалентна следующей:

$total cost = $cost + ($cost * 0.06);

Это объясняется тем, что оператор умножения обладает более высоким приоритетом по сравнению с оператором сложения.

Ассоциативность операторов

Ассоциативность оператора определяет последовательность выполнения операторов с одинаковым приоритетом (см. табл. 3.1). Выполнение может происходить в двух направлениях: либо слева направо, либо справа налево. При ассоциативности первого типа операции, входящие в выражение, выполняются слева направо. Например, команда

$value = 3*4*5*7*2;

эквивалентна следующей команде:

$value = ((((3 * 4) * 5) * 7) * 2);

Результат вычислений равен 840. Это объясняется тем, что оператор умножения (*) обладает левосторонней ассоциативностью. Операторы с правосторонней ассоциативностью и одинаковым приоритетом обрабатываются справа налево. Например, фрагмент

$с = 5;

$value = $а - $b - $с;

эквивалентен фрагменту

$c = 5;

$value = ($а - ($b - $с));

При обработке этого выражения переменным $value, $a, $b и $с будет присвоено значение 5. Это объясняется тем, что оператор присваивания (=) обладает правосторонней ассоциативностью.

Математические операторы

Математические операторы (табл. 3.2) предназначены для выполнения различных математических операций и часто применяются в большинстве программ РНР. К счастью, их использование обходится без проблем.

Таблица 3.2. Математические операторы

Пример


Название


Результат

$а + $b


Сложение


Сумма $а и $b

$а-$b


Вычитание


Разность $а и $b

$а*$b


Умножение


Произведение $а и $b

$а/$b


Деление


Частное от деления $а на $b

$а % $b


Остаток


Остаток от деления $а на $b

РНР содержит широкий ассортимент стандартных математических функций для выполнения основных преобразований и вычисления логарифмов, квадратных корней, геометрических величин и т. д. За обновленным списком таких функций обращайтесь к документации.

Операторы присваивания

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

Таблица 3.3. Операторы присваивания
Пример Название Результат
$а = 5; Присваивание Переменная $а равна 5
$а += 5; Сложение с присваиванием Переменная $а равна сумме $а и 5
$а *= 5; Умножение с присваиванием Переменная $а равна произведению $а и 5
$а/=5; Деление с присваиванием Переменная $а равна частному отделения $а на 5
$а .= 5; Конкатенация с присваиванием Переменная $а равна конкатенации $а и 5

Умеренное использование операторов присваивания обеспечивает более наглядный и компактный код.

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

Строковые операторы РНР (табл. 3.4) обеспечивают удобные средства конкатенации (то есть слияния) строк. Существует два строковых оператора: оператор конкатенации (.) и оператор конкатенации с присваиванием (.=), описанный в предыдущем разделе «Операторы присваивания».

Конкатенацией называется объединение двух и более объектов в единое целое.

Таблица
Комментарии (0)
1 2 3 ... 6 >>
Скачать Java книгу

»php/mysql/pdo/js
В библиотеку

На главную

Сообщество wap разработчиков I HwapCMS официальный сайт поддержки


RSS-лента
Генерация: 0.0099 сек.