Побитовые операторы
Если вы не знакомы с записью информации в битовой форме, ничего страшного - в этом разделе приводится общая информация по данной теме. В противном случае можете с чистой совестью переходить к следующему разделу.
Бит является минимальной единицей представления информации. В бите может храниться только одно двоичное число или, другими словами, 1 или 0. Компьютеры работают с двоичными представлениями данных. Двоичное представление числа является значением этого числа в двоичном исчислении. Например, если вы задаете компьютеру операцию сложения 3 и 5, он преобразует эти числа в их двоичное представление 0011 и 0101 соответственно. Затем выполняется указанное действие (в данном случае это сложение) и возвращается результат, равный 1000. Только после этого двоичный результат преобразуется обратно в десятичный вид, и мы получаем результат - 8.
Побитовые операторы подобны логическим операторам, за исключением того, что они обрабатывают двоичное представление своих аргументов. В случае, если оба аргумента являются строками, операция выполняется между параллельными смещениями символов, а результат хранится с тем же смещением результирующей строки. Во всех других случаях аргументы преобразуются в целочисленное представление, и только после этого выполняется сама операция.
При использовании логических операторов операция 1 and 10 дает TRUE. При выполнении операции "логического И" 1 and 10 возвращает значение TRUE. Однако рассмотрим эти числа как двоичные. Что происходит в этом случае? Десятичная единица в двоичном представлении выглядит как 0001, а 10 - это 1010. Операция "побитовое И" над 1 и 10 возвращает 0. Так происходит из-за того, что операция "побитовое И" сравнивает каждый бит. Побитовые операторы языка PHP приводятся в табл. 2.10.
Пример выполнения побитовой операции показан на рис. 2.1. На нем отражена операция (12 & 10) == 8.
Побитовые операции эффективно применяются в языке C, который является общепризнанным предшественником PHP, но они редко используются в PHP-сце-нариях. О том, насколько незначительно использование таких операторов, рассказывается в последующих главах.
Операторы определения типа данных (кастинга)
Автоматическое преобразование значений в зависимости от контекста позволяет игнорировать точные типы. Однако в определенных ситуациях может потребоваться задать явным образом нужный тип значений. Операция преобразования значения определенного типа в эквивалентное ему значение другого типа называется кастингом. В табл. 2.11 приведены операторы преобразования PHP.
PHP имеет несколько операторов преобразования. Форма записи операторов преобразования является простым обозначением типа, к которому вы планируете привязать ту или иную переменную, указанную в скобках. Выражение, которое вы намерены привязать, указывается справа от оператора преобразования.
Заметим, что операция преобразования не изменяет самого значения переменной, она только задает тип выражения. Если необходимо изменить тип значения, хранящегося в данной переменной, можно воспользоваться функцией settype, которая подробно описывается в главе 11, "Данные".
Такое явное преобразование типа выражений может потребоваться в случае, когда PHP осуществляет передачу данных в среды, менее лояльные к типам. Например, PHP не обращает внимание на лишние символы в числах, когда строки преобразуются в числа, а такой язык, как SQL (этот язык используется в большинстве реляционных баз данных), - нет.
Другие операторы
Существуют операторы, которые нельзя отнести ни к одной из предыдущих категорий, - это оператор конкатенации, маркер переменной и оператор ссылки
(табл. 2.12).
Оператор конкатенации аналогичен оператору сложения, но он складывает не числовые значения, а строки. Нестроковые операнды автоматически преобразуются в соответствии с правилами преобразования. Этот очень полезный оператор. При работе с оператором print довольно удобно объединять несколько строк. Оператор конкатенации, например, удобно использовать при построении запросов к базе данных (листинг 2.13).
ТОП-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. Переменные, операторы и выражения. Часть Десятая. |