2.4. Константы
Константы аналогичны переменным, но задаются только единожды. Некоторые из них создаются PHP автоматически; другие можно создать с помощью функции define, подробнее описанной в главе 11, "Данные". Для получения значения константы символ доллара не используется, и константа никогда не может быть задана в левой части оператора присвоения.
Несмотря на то что это не критично, для обозначения констант используются только прописные буквы. Это позволяет сделать их заметными в сценарии, что можно увидеть на примере листинга 2.8. В главе 8, "Браузер ввода-вывода", показано, что PHP сам во время запуска создает много переменных.
| Листинг 2.8. Использование констант_
<?php
define("STANDARD_GREETING", "Hello, World!");
print(STANDARD_GREETING);
?>
2.5. Операторы
Как указывалось ранее, оператор представляет собой специальный символ, предписывающий PHP выполнить математическую или логическую операцию над одним или несколько операндами. Такое выражение, как $result = 2 + 5, содержит три оператора. Оператор $ указывает PHP, что используется переменная result. Оператор = присваивает значение, расположенное в правой части, переменной, размещенной в его левой части. Оператор + производит сложение значений, указанных по обе стороны от него.
Большинство операторов обрабатывают два операнда и поэтому называются бинарными операторами. Операторы, обрабатывающие один операнд, называются унарными операторами. В PHP также имеется один оператор, работающий с тремя операндами, который называется троичным оператором. За небольшими исключениями большинство операторов можно отнести к одной из пяти категорий: арифметические операторы, логические операторы, битовые операторы, операторы присвоения и операторы управления.
Большинство операторов работает с операндами определенного типа. Например, арифметические операторы обычно работают с числовыми аргументами. Что же происходит, если ему предоставить строку? К счастью, PHP в целом и его операторы в частности не делают проблем из несоответствия типов данных.
При получении оператором неожиданного типа PHP делает все от него зависящее для того, чтобы преобразовать его и не потерять при этом смысл операнда. После преобразования из строки в число PHP игнорирует пробелы и завершающие символы. Например, PHP преобразует значения "4.5test" и "4.5" в 4.5. Если PHP не находит никакого числового значения строки, он преобразует строку в нулевое значение. Если PHP ожидает целое число, он отбрасывает все цифры после десятичной точки.
Использование вещественных чисел в операторах, в которых PHP ожидает целочисленных результатов, приводит к отсечению дробной части. Для округления вещественного числа до кратного целого существует и специально для этого предназначенная функция round, детально описанная в главе 13, "Математические функции".
Пустые строки и нуль преобразуются в значение FALSE, если PHP ожидает логическое значение. Строка, содержащая один символ "0 ", преобразуется в значение FALSE. Любые другие строки или числовые значения возвращают логическое значение TRUE. Массивы (они обсуждаются в главе 4, "Функции") возвращают логическое значение TRUE, если они содержат элементы. Вариант с преобразованием массива в логическое значение - явление необычное. Значения NULL всегда возвращают значение FALSE. Ресурсы и объекты всегда возвращают значение TRUE.
Поскольку PHP преобразует все другие типы в логический тип без каких-либо диагностических сообщений, необходимо быть очень внимательным. Некоторые функции при ошибочном завершении возвращают значение FALSE, а при успешном завершении - число или строку. Если простая поверка возвращаемого значения свидетельствует о том, что функция возвращает пустую строку или нуль, такой результат будет невозможно отличить от ошибочного завершения работы функции. Операторы === и !=== позволяют избежать такой неоднозначности, но об этом - позднее.
При преобразовании в строки других типов PHP возвращает представление, имеющее определенный смысл. Целые числа становятся строками или числами. Вещественные числа преобразуются в строки с десятичной точкой. PHP возвращает предельно большие или предельно малые числовые значения в экспоненциальном виде. Составные типы преобразуются в строки. Работа со сложными типами как со строками имеет смысл только в отладочных целях. В табл. 2.5 приводятся правила преобразования типов.
>
ТОП-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. Переменные, операторы и выражения. Часть Седьмая. |