Почему Zend Framework 2 определяет целочисленные константы, такие как 1 2 4 8 16

1

Например:

class Boolean extends AbstractFilter
{
    const TYPE_BOOLEAN        = 1;
    const TYPE_INTEGER        = 2;
    const TYPE_FLOAT          = 4;
    const TYPE_STRING         = 8;
    const TYPE_ZERO_STRING    = 16;
    const TYPE_EMPTY_ARRAY    = 32;
    const TYPE_NULL           = 64;
    const TYPE_PHP            = 127;
    const TYPE_FALSE_STRING   = 128;
    const TYPE_LOCALIZED      = 256;
    const TYPE_ALL            = 511;

Почему бы не определить как 1 2 3 4 5 и определить 1 2 4 8 16?

Теги:
zend-framework
constants
zend-framework2
binary-operators

3 ответа

1

Потому что вы можете использовать побитовые операции над этими числами. Каждый из них (двоичный разговор) представляет собой один, а остальные - как нули. Таким образом, вы можете манипулировать рядом опций в одном байте. Скажем, если вы добавите 1000 + 0100, вы получите 1100, и информация будет сохранена.

Та же логика применяется ко второму паразиторию json_encode, например json_encode($array, JSON_HEX_TAG | JSON_HEX_APOS).

0

вы можете найти более подробную информацию о вас здесь.

предложение о вашем вопросе заключается в том, why computer science use 1 2 4 8 16 и т.д. только для рамки zend.

0

Потому что вы можете использовать их в своем фильтре:

TYPE_INTEGER или TYPE_FLOAT находит либо целые числа, либо поплавки

TYPE_ALL отдает это: это все остальные значения ORed вместе.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню