Ben, izin dizeleri bir dizi alır az 255 karakterler ve bir varlık onları atar bir işlev üzerinde çalışıyorum. Atanan Her dize tektir, ama, bir diziye bırakarak onları serializing ve bir veritabanına itme ve onları dışarı çekerek daha sonra bunları de-serializing veya bir sorgudan bir yük olduğunu her zaman hesaplamaya gecikmeye neden olmuştur o kadar çok var sorunlar. Özellikle ile izinleri miras.
Yani ben o zaman izinleri glob içine OR'ing bir maske üreten, dize almayı düşünüyordum. Daha izinler eklenir gibi onları glob devam VEYA. Sonra glob karşı izni VE dizesi doğrulamak için gerektiğinde.
Soru maskesi oluşturmak için nasıl. İlk Ben sadece eşsiz bir maske için dize karma düşünüyordum anda, ancak düşünülebilir, ama daha hash değerleri olarak glob üzerine böyle bir bir topak doldurmak için potansiyel OR'ed olduğunu, ne kadar muhtemel bilmiyorum yolu o ve VE onlar, henüz gerçek bir değer döndürmüyor izni ile bir test.
if($glob&&$test == $test)
Diğer seçenek sadece otomatik sayı izni dizeleri olmak ve onların maskesi 2 ^ otomatik sayı olurdu. Ama etrafında 64ish izni dizeleri sayısını sınırlamak olur.
Ne istiyorum gerçekten ben bir kez bir veritabanı çekin ve kullanıcı ile ilişkilendirmek çeşit bir topak olduğunu. Sonra bir izin kümesini temsil eden bir dize veya ilişkili değer karşı olduğunu topak test edin.