| Двоичные данные (Boolean) |
|
|
|
Двоичные данные (Boolean)Это простейший тип. Он выражает истинность значения - это может быть либо TRUE, либо FALSE. Булев тип был введен в PHP4. Чтобы определить булев тип, используйте ключевое слово TRUE или FALSE. Оба регистро-независимы. <?php Обычно используется некий оператор, который возвращает логическое выражение, а затем предает его управляющей конструкции. <?php Преобразование в тип BooleanДля преобразования значения в булев тип используйте приведение типа (bool) или (boolean). Однако в большинстве случаев вам нет необходимости использовать приведение типа, поскольку значение будет автоматически преобразовано, если оператор, функция или управляющая конструкция требует булев аргумент. При преобразовании в логический тип, следующие значения рассматриваются как FALSE:
Все остальные значения рассматриваются как TRUE (включая любой ресурс). Внимание! -1 считается TRUE, как и любое ненулевое (отрицательное или положительное) число! <?php Работа с бинарными данными (тип boolean)Cтроки могут содержать любые, в том числе и бинарные данные. Для работы с такими строками иногда pack(string $format [,mixed $args, ...]) Функция pack() упаковывает заданные аргументы в бинарную строку, которая затем и возвращается. Формат параметров, а также их количество, задается при помощи строки $format, которая представляет собой набор однобуквенных спецификаторов форматирования — наподобие тех, которые указываются в sprintf(), но только без знака %. После каждого спецификатора может стоять число, которое отмечает, сколько информации будет обработано данным спецификатором. А именно, для форматов a, A, h и H число задает, какое количество символов будет помещено в бинарную строку из тех, что находятся в очередном параметре-строке при вызове функции (то есть, определяется размер поля для вывода строки). В случае @ оно определяет абсолютную позицию, в которую будут помещены следующие данные. Для всех остальных спецификаторов следующие за ними числа задают количество аргументов, на которые распространяется действие данного формата. Вместо числа можно указать *, в этом случае подразумевается, что спецификатор действует на все оставшиеся данные. Вот полный список спецификаторов формата: a — строка, свободные места в поле заполняются символом с кодом 0; Немало, не правда ли? Вот пример использования этой функции: // Целое, целое, все остальное — символы После выполнения приведенного кода в строке $bindata будет содержаться 6 байтов в такой последовательности: 0x12, 0x34, 0x78, 0x56, 0x41, 0x42 (в шестнадцатеричной системе счисления). unpack(string $format, string $data) Функция unpack() выполняет действия, обратные pack() — распаковывает строку $data, пользуясь информацией о формате $format. Возвращает она ассоциативный массив, содержащий элементы распакованных данных. Строка $format задается немного в другом формате, чем в функции pack(), а именно, после каждого спецификатора (или после завершающего его числа) должно "впритык" следовать имя ключа в ассоциативном массиве. Разделяются параметры при помощи символа /. Пример: $array=unpack("c2chars/nint", $bindata); В результирующий массив будут записаны элементы с ключами: chars1, chars2 и int. Как видим, если после спецификатора задано число, то к имени ключа будут добавлены номера 1, 2 и т. д., т. е. в массиве появятся несколько ключей, отличающихся суффиксами. По материалам сайта: http://www.php.su/
|



