ТОП-10 популярных



Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...

НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...

БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...

Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...

ПОД ЛИТЕРОЙ «N»
Aтаку LCD-мониторов не остановить, а масштабы этого наступления даже немного пугают. Судите сами — многие пользователи только начинают приглядываться к новому для...


Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...

Размер объему не помеха.
С тех пор как компания Fujitsu отказалась от производства жестких дисков для настольных компьютеров, многие пользователи начали забывать о том,...


Какую только информацию мы не помещаем на компакт-диски: резервные копии важных данных, музыку, фильмы... Многие полагают, что главное - «купить...

PHP. Переменные, операторы и выражения. Часть Девятая.


28-12-2009

Побитовые операторы
Если вы не знакомы с записью информации в битовой форме, ничего страшного - в этом разделе приводится общая информация по данной теме. В противном случае можете с чистой совестью переходить к следующему разделу.
Бит является минимальной единицей представления информации. В бите может храниться только одно двоичное число или, другими словами, 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).

Понравился материал? Поделитесь с друзьями!



<< Предыдущая статьяСледующая статья >>
PHP. Переменные, операторы и выражения. Часть Восьмая. PHP. Переменные, операторы и выражения. Часть Десятая.