Ben bir komut dosyası için PHP bir kullanıcı rolü / izin sistemi üzerinde çalışıyorum.
Aşağıda phpbuilder.com bulunan izinler için bir bit maskesi yöntemi kullanarak bir koddur.
Kısmının altında bit parçası olmadan temelde aynı şeyi yapabileceğini w3hich daha basit bir versiyonudur.
Birçok kişi bit operatörleri ve PHP ayarları ve diğer şeyler için böyle kullanarak tavsiye ettim, ben neden olsa anladım hiç. Aşağıdaki kodu ANY benefit yerine ikinci 1 kodunu kullanarak var mı?
<?php
/**
* Correct the variables stored in array.
* @param integer $mask Integer of the bit
* @return array
*/
function bitMask($mask = 0) {
$return = array();
while ($mask > 0) {
for($i = 0, $n = 0; $i <= $mask; $i = 1 * pow(2, $n), $n++) {
$end = $i;
}
$return[] = $end;
$mask = $mask - $end;
}
sort($return);
return $return;
}
define('PERMISSION_DENIED', 0);
define('PERMISSION_READ', 1);
define('PERMISSION_ADD', 2);
define('PERMISSION_UPDATE', 4);
define('PERMISSION_DELETE', 8);
//run function
// this value would be pulled from a user's setting mysql table
$_ARR_permission = bitMask('5');
if(in_array(PERMISSION_READ, $_ARR_permission)) {
echo 'Access granted.';
}else {
echo 'Access denied.';
}
?>
non-bit sürümü
<?PHP
/*
NON bitwise method
*/
// this value would be pulled from a user's setting mysql table
$user_permission_level = 4;
if($user_permission_level === 4) {
echo 'Access granted.';
}else {
echo 'Access denied.';
}
?>