quote
"the idea is not good, really. you would better pass few boolean. if you want use bitwise then
function someFunc($options)
{
if ($options & 1 != 0)
//then option 1 enabled
if ($options & (1 << 1) != 0)
//then option 2 enabled
if ($options & (1 << 2) != 0)
//then option 3 enabled
}
"
Eğer tek bir değer için kontrol olsaydı ne yaptın tam biz aşağıdaki yöntemleri olabilir uygun olmasa da, bu yüzden biraz etkin olduğunu kontrol, ama biz herhangi bir ya da maç mümkün istedim Diyelim, iyi olurdu
function matchExact($in, $match) { // meets your criterion, as would a switch, case, but ultimately not suited for use with flags
return $in === $match;
}
function matchAny($in, $match) { // meets original criterion with more lexical name however it returns true if any of the flags are true
return $in |= $match;
}
Eğer sadece oluyor belirli eylemler sahip bu üzerine genişletmek istiyorsa bit x, y, z etkinse o zaman aşağıdaki kullanabilirsiniz
function matchHas($in, $match) { // more bitwise than === as allows you to conditionally branch upon specific bits being set
return $in &= $match;
}
Eğer yukarıdaki alıntıda yapıldı ne yapıyorsun ben de düşünüyorum, bayraklar iyi bir fikir olmayabilir, kesin değerler daha sağduyulu eylemleri izin parası var ki, daha iyi olabilir. (0-255) 8-bit üzerinde 8 ayrı bayrakları için
2 tabanı "8" "4" içermiyor, ve "2", "1" içermiyor, çünkü bayrakları çok iyi çalışmak bütün nedenidir.
________________________
|8|4|2|1|Base 10 Value |
------------------------
|1|1|1|1|15 |
|1|1|1|0|14 |
|1|1|0|1|13 |
|1|1|0|0|12 |
|1|0|1|1|11 |
|1|0|1|0|10 |
|1|0|0|1|9 |
|1|0|0|0|8 |
|0|1|1|1|7 |
|0|1|1|0|6 |
|0|1|0|1|5 |
|0|1|0|0|4 |
|0|0|1|1|3 |
|0|0|1|0|2 |
|0|0|0|1|1 |
|0|0|0|0|0 |
------------------------