Побитовые операции в PHP?

Я понимаю, что побитовые операции необходимы для многоуровневого программирования, такого как запись драйверов устройств, низкоуровневая графика, сборка и декодирование пакетов протокола связи. Я занимаюсь PHP уже несколько лет, и я видел побитовые операции очень редко в проектах PHP.

Можете ли вы привести примеры использования?

Ответы

Ответ 1

Вы можете использовать его для битмасков для кодирования комбинаций вещей. В основном, это работает, давая каждому бит смысл, поэтому, если у вас есть 00000000, каждый бит представляет что-то, помимо того, что он является единственным десятичным числом. Скажем, у меня есть некоторые предпочтения для пользователей, которых я хочу сохранить, но моя база данных очень ограничена с точки зрения хранения. Я мог бы просто сохранить десятичное число и извлечь из этого, какие предпочтения выбраны, например. 9 2^3 + 2^0 is 00001001, поэтому у пользователя есть предпочтение 1 и предпочтение 4.

 00000000 Meaning       Bin Dec    | Examples
 │││││││└ Preference 1  2^0   1    | Pref 1+2   is Dec   3 is 00000011
 ││││││└─ Preference 2  2^1   2    | Pref 1+8   is Dec 129 is 10000001
 │││││└── Preference 3  2^2   4    | Pref 3,4+6 is Dec  44 is 00101100
 ││││└─── Preference 4  2^3   8    | all Prefs  is Dec 255 is 11111111
 │││└──── Preference 5  2^4  16    |
 ││└───── Preference 6  2^5  32    | etc ...
 │└────── Preference 7  2^6  64    |
 └─────── Preference 8  2^7 128    |

Дальнейшее чтение

Ответ 2

Побитовые операции чрезвычайно полезны в информации учетных данных. Например:

function is_moderator($credentials)
{ return $credentials & 4; }

function is_admin($credentials)
{ return $credentials & 8; }

и т.д.

Таким образом, мы можем сохранить простое целое число в одном столбце базы данных, чтобы иметь все учетные данные в системе.