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

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

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

29
задан Peter Mortensen 6 December 2015 в 09:52
поделиться

2 ответа

Вы можете использовать его для Bitmasks для кодирования комбинаций вещей. В принципе, он работает, давая каждое избранное значение, поэтому, если у вас есть 00000000 , каждый бит представляет собой что-то, помимо одного десятичного числа. Допустим, у меня есть некоторые предпочтения для пользователей, которые я хочу хранить, но моя база данных очень ограничена с точки зрения хранения. Я мог бы просто сохранить десятичное число и выбираю из этого, какие предпочтения выбраны, например, 9 2 ^ 3 + 2 ^ 0 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    |

Чтение

47
ответ дан 28 November 2019 в 01:15
поделиться

Проблема не только применяется для подчеркивания в доменных именах, но и для доменных имен, начиная с цифровой цифры. Таким образом 1aaaaaaa.tld на самом деле является нестандартным доменом, которое приведет к тому, чтобы отклонить файл cookie.

Я решил его, используя только www2.1aaaaaaa.tld , а затем добавление правил переписывания для 1aaaaaaa.tld и www.1aaaaaaa.tld в .htaccess . Не знаю, действительно ли это, квалифицируется как стандарты-совместимое решение .... Но в любом случае, кажется, решил проблему печенья.

Надеюсь, что это поможет кому-то!

-121--957000-

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

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

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

и так далее ...

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

18
ответ дан 28 November 2019 в 01:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: