Арифметические операторы
Сложение, вычитание, умножение и деление - это хорошо известные концепции, которые применимы к любому числовому значению, включая целые и вещественные числа. При использовании с другими типами, например со строками, PHP сначала преобразует их в числовые значения, а затем выполняет операцию. Результирующий тип арифметического выражения может быть целым или вещественным числом. PHP определяет тип результата на основании того, требуется ли для описания полученного результата десятичная точка. Совсем по-другому происходит в языках с жестко заданными типами данных (язык C), которые определяют тип результата только на базе типов операндов. В табл. 2.6 сведены все арифметические операторы, а в листинге 2.9 приведен пример их использования.
Деление по модулю возвращает целый остаток операции деления, а поэтому определяется только для целых чисел. При использовании со значениями других типов он сначала преобразует их в целые значения и только после этого выполняет саму операцию. Результат деления по модулю всегда имеет целый тип.
Оператор + имеет другой смысл при работе с массивами (подробнее об этом - в главе 5, "Массивы").
Листинг 2.9. Использование арифметических операторов
<?php
//напечатать 6 (а не 8!)
print(2 + 2 * 2);
print("<br>n"); //напечатать 2.5 print(5 / 2); print("<br>n"); // напечатать 1 print(5 % 2); print("<br>n"); //напечатать 3 5
print(" 7 little Indians" * 5); print("<br>n");
?>
Операторы инкремента и декремента являются сокращенным представлением операции прибавления или вычитания из переменной значения 1. Они не могут использоваться ни с чем другим, кроме переменной, поэтому выражение вида 5++ является неправильным. Эти операторы работают с целыми и вещественными числами. Операторы инкремента также работают со строками: PHP позволяет преобразовывать последний символ строки в символ, следующий по кодовой таблице. Операция декремента со строками не работает, хотя это и не является ошибкой.
Как видно в табл. 2.6, существуют две различные формы записи этих операторов. Во многих ситуациях, когда эти операторы используются просто для увеличения или уменьшения значения переменной, оба типа записи ведут себя одинаково. Однако при использовании инкрементного выражения в качестве аргумента функции или другого оператора различие в написании влияет и на значение выражения.
Значение инкрементного выражения всегда является значением переменной. Расположение оператора инкремента только свидетельствует о том, когда производится оценка выражения: до или после выполнения операции инкремента. Если оператор размещен справа, PHP сначала использует значение переменной, а затем ин-крементирует ее. Это называется постинкрементом (операцией с последующим приращением операнда). При размещении оператора слева PHP сначала инкрементирует значение, а потом использует вновь полученное значение. Это называется предын-крементом (операцией с предварительным приращением операнда). Эта концепция продемонстрирована в листинге 2.10.
I Листинг 2.10. Использование арифметических операторов
<?php
$VisitorsToday = 1;
//напечатать 1
print($VisitorsToday++);
//значение VisitorsToday теперь равно 2
print("<br>n");
// напечатать 3
print(++$VisitorsToday);
print("<br>n");
//напечатать 4.14
$pi = 3.14;
$pi++; print($pi); print("<br>n"); // напечатать PHP
$php = "PHP";
$php++; print($php); print("<br>n"); // напечатать PHP
$php = "PHP";
$php--;
print($php);
print("<br>n");
?>
ТОП-10 популярных
Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...
БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Компьютер для гурманов.«Эксимер ДМ»
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...
В дополнение к календарным типам, предназначенным для хранения даты и времени отдельно, MySQL также поддерживает гибридные типы данных DATETIME и...
Вообще, к изменению настроек сервера прибегают очень редко. В MySQL программа заранее настроена так, чтобы соответствовать самым распространенным и основным...
PHP. Переменные, операторы и выражения. Часть Седьмая.
28-12-2009
<< Предыдущая статья | Следующая статья >> |
PHP. Переменные, операторы и выражения. Часть Шестая. | PHP. Переменные, операторы и выражения. Часть Восьмая. |