Відмінності між версіями «Boolean (двійкові дані)»
(не показана одна проміжна версія ще одного учасника) | |||
Рядок 7: | Рядок 7: | ||
При перетворенні в логічний тип, наступні значення розглядаються як FALSE: | При перетворенні в логічний тип, наступні значення розглядаються як FALSE: | ||
− | *Сам | + | *Сам булевий FALSE |
*ціле 0 (нуль) | *ціле 0 (нуль) | ||
− | *число з плаваючою | + | *число з плаваючою крапкою 0.0 (нуль) |
− | * порожній рядок і рядок "0" | + | *порожній рядок і рядок "0" |
*масив з нульовими елементами | *масив з нульовими елементами | ||
*об'єкт з нульовими змінними-членами | *об'єкт з нульовими змінними-членами | ||
Рядок 61: | Рядок 61: | ||
'''X''' - повернення назад на 1 байт;<br> | '''X''' - повернення назад на 1 байт;<br> | ||
'''@''' - Заповнення нульовим кодом до заданої абсолютної позиції.<br> | '''@''' - Заповнення нульовим кодом до заданої абсолютної позиції.<br> | ||
+ | |||
+ | |||
+ | Функція '''unpack ()''' | ||
+ | |||
Поточна версія на 08:16, 30 квітня 2010
Boolean-це найпростіший тип. Він висловлює істинність значення - це може бути або TRUE, або FALSE. Булевий тип був введений в PHP4.
Перетворення в тип Boolean
Для перетворення значення в булеві тип використовуйте приведення типу (bool) або (boolean). Однак у більшості випадків вам немає необхідності використовувати приведення типу, оскільки значення буде автоматично перетворено, якщо оператор, функція або керуюча конструкція вимагає булевий аргумент.
При перетворенні в логічний тип, наступні значення розглядаються як FALSE:
- Сам булевий FALSE
- ціле 0 (нуль)
- число з плаваючою крапкою 0.0 (нуль)
- порожній рядок і рядок "0"
- масив з нульовими елементами
- об'єкт з нульовими змінними-членами
- спеціальний тип NULL (включаючи невстановлені змінні).
Всі інші значення розглядаються як TRUE (включаючи будь-який ресурс).
Увага! -1 Вважається TRUE, як і будь-яке ненульове (негативне або позитивне) число!
<?php
var_dump((bool)"");// bool(false)
var_dump((bool)1);// bool(true)
var_dump((bool)-2);// bool(true)
var_dump((bool) "foo");// bool(true)
var_dump((bool) 2.3e5);// bool(true)
var_dump((bool) array(12));// bool(true
var_dump((bool)) array());// bool(false)
var_dump((bool)"false");// bool(true)
?>
Робота з бінарними даними (тип Boolean)
Рядок можить містить будь-які, в тому числі і бінарні дані. Для роботи з такими рядками іноді зручно використовувати функції pack () та unpack ().
pack (string $ format [, mixed $ args, ...])
Функція pack () упаковує задані аргументи на бінарну рядок, яка потім і повертається. Формат параметрів, а також їх кількість, задається за допомогою рядка $ format, яка являє собою набір Однолітерні специфікатором форматування - на зразок тих, які вказуються в sprintf (), але тільки без знаку %. Після кожного специфікатором може стояти число, яке відзначає, скільки інформації буде оброблено даними специфікатором. А саме, для форматів a, A, h і H число задає, яка кількість символів буде поміщено в бінарну рядок з тих, що знаходяться у черговому параметрі-рядку при виконанні функції (тобто, визначається розмір поля для виведення рядка). У разі @ воно визначає абсолютну позицію, в яку будуть поміщені наступні дані. Для всіх інших специфікатором наступні за ними числа задають кількість аргументів, на які поширюється дія даного формату. Замість числа можна вказати *, в цьому випадку мається на увазі, що специфікатором діє на всі залишилися дані. Ось повний список специфікатором формату:
a - рядок, вільні місця в полі заповнюються символом з кодом 0;
A - рядок, вільні місця заповнюються пробілами;
h - шістнадцяткова рядок, молодші розряди на початку;
H - шістнадцяткова рядок, старші розряди на початку;
c - знаковий байт (символ);
C - беззнаковий байт;
s - знакова короткий ціле (16 бітів, порядок байтів визначається архітектурой процесора);
S - беззнаковое короткий ціле;
n - беззнаковое ціле (16 бітів, старші розряди в кінці);
v - беззнаковое ціле (16 бітів, молодші розряди в кінці);
i - знакова ціле (розмір і порядок байтів визначається архітектурою);
I - беззнаковое ціле;
l - знакова довге ціле (32 біта, порядок байтів визначається архітектурирій);
L - беззнаковое довге ціле;
N - беззнаковое довге ціле (32 біта, старші розряди в кінці);
V - беззнаковое ціле (32 біта, молодші розряди в кінці);
f - число з плаваючою точкою (залежить від архітектури);
d - число з плаваючою точкою подвійної точності (залежить від архітектури);
x - символ з нульовим кодом;
X - повернення назад на 1 байт;
@ - Заповнення нульовим кодом до заданої абсолютної позиції.
Функція unpack ()
Перейти до Змінні та типи данних в PHP