Глава 12. Арифметические операции в PHP
Прежде чем перейти к подробному изучению новых для вас конструкций, а также их реализаций, опишем операции, используемые в РНР.
Такие операции, как + (сложение), — (вычитание), *(умножение) и / (деление), знакомы вам по математическим формулам еще со школьных времен. Посредством операций выражаются отношения между данными. Существует множество операций, которые вам знакомы, еще больше могут быть неизвестны, а есть немало таких, которые вы можете не считать
ВНИМАНИЕ
Настоятельно рекомендуем: если вы не уверены в правильности применения операций (имеется в виду последовательности выполнения), уточняйте их расстановкой скобок.
СОВЕТ
В этой главе приведен полный список операций РНР. По конкретным вопросам назначения и использования отдельных операций обращайтесь к документации по РНР (www.php.net).
Поняв сам принцип употребления операций, вы сможете без проблем перейти кдальнейшему изучению языка РНР. В данной главе будет уделено внимание следующим
• приоритет операций;
• одноместные операции;
• двухместныеоперации;
• арифметические операции;
• операции назначения;
• поразрядные операции;
• операции сравнения;
• операции контроля ошибок;
• логические операции;
• строковые операции.
12.1. Приоритет операций
Приоритет определяет, к какому операнду относится операция и порядок вычисления операций. Некоторые операции в разных контекстах имеют различный смысл, например операция () (скобки) может обозначать как вызов функции, так и приведение типа. Конкретный контекст определяет, в частности, приоритет операций.
Некоторые операции вам хорошо знакомы и вычисляются в привычном порядке. Например, во фрагменте:
согласно правилам вычисления арифметических выражений, сначала производится умножение $c*$d, а потом прибавляется $b:
<?
$а=3;
$b=2;
$с=4;
$а+$b*$с;
?>
результат будет 1 1, но ни в коем случае не 20, так как оператор «*» имеет более высокий приоритет, чем оператор
Если порядок вычисления последовательности операций не вполне понятен, его можно прояснить расстановкой скобок. Например, предыдущий фрагмент примет вид:
Здесь порядок операций однозначно ясен, хотя для компилятора обе записи совершенно равноценны. Что касается скоростей обработки этихдвух выражений, то они приблизительно равны.
СОВЕТ
Операции - это фундамент выражений, поэтому с теми, которые вам незнакомы, следует экспериментировать.
В табл. 12.1 приведен список операций, применяемых в РНР. В ней операции приведены в порядке убывания их приоритета, т. е. элементы, имеющие более высокий приоритет, выполняются всегда первыми, имеющие более низкий приоритет — вторыми и т. д.
Таблица 12.1. Приоритет операций