Why should I use bitwise/bitmask in PHP?

后端 未结 8 1919
时光取名叫无心
时光取名叫无心 2020-11-30 20:54

I am working on a user-role / permission system in PHP for a script.

Below is a code using a bitmask method for permissions that I found on phpbuilder.com.

B

8条回答
  •  庸人自扰
    2020-11-30 21:26

    Why not just do this...

    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 = 5;
    
    if($_ARR_permission & PERMISSION_READ) {
        echo 'Access granted.';
    }else {
        echo 'Access denied.';
    }
    

    You can also create lots of arbitrary combinations of permissions if you use bits...

    $read_only = PERMISSION_READ;
    $read_delete = PERMISSION_READ | PERMISSION_DELETE;
    $full_rights = PERMISSION_DENIED | PERMISSION_READ | PERMISSION_ADD | PERMISSION_UPDATE | PERMISSION_DELETE;
    
    //manipulating permissions is easy...
    $myrights = PERMISSION_READ;
    $myrights |= PERMISSION_UPDATE;    // add Update permission to my rights
    

提交回复
热议问题