Maison php教程 php手册 二进制交叉权限微型php类分享

二进制交叉权限微型php类分享

Jun 06, 2016 pm 08:25 PM
二进制

这篇文章主要介绍了二进制交叉权限微型php类,需要的朋友可以参考下

靓点:
1、多对多交叉场景分配;
2、php新特性-闭包使用、批处理函数array_walk/array_flip使用;
3、位运算&使用案例;

使用场景:
1、常见增删改查(2的N次方值入库);
2、认证、第三方账号绑定、多分类选择;

复制代码 代码如下:


class s_allow{

//声明使用场景,任务清单
public $scene,$case_list=array();

//声明指定用户角色、允许值、允许清单
public $allow_value=0,$allow_list=array();


//初始化场景、角色
function __construct($scene,$allow_value=0){
$this->scene=$scene;
$this->case_list=$this->case_list(true);

if ($allow_value) {
$this->allow_value=$allow_value;
$this->allow_list=$this->allow_list($allow_value,true);
}
}


//取得全部任务清单
function case_list($mode=false){
$case_list=config($this->scene,'allow');
return $mode ? $case_list : array_keys($case_list);
}


//取得用户任务清单
function allow_list($allow_value=0,$mode=false){
$buffer=array();
foreach ($this->case_list as $key=>$value) {
if ($allow_value & pow(2,$key-1)) {
$buffer[$key]=$value;
}
}
return $mode ? $buffer : array_keys($buffer);
}


//计算允许值
function allow_value($allow_list=null){
if ($allow_list==null) $allow_list=$this->allow_list;
array_walk($allow_list, function($value,$key) use(&$allow_list){
$allow_list[$key]=pow(2,$value-1);
});
return array_sum($allow_list);
}


//判断是否允许
function is_allow($case){
$case_list=array_flip($this->case_list);
return (bool)($this->allow_value & pow(2,$case_list[$case]-1));
}
}

复制代码 代码如下:


[access]
1=add
2=del
3=read
4=list
5=mod
6=detail
7=pub
8=collect
9=like
10=send


[cert]
1=email
2=tel
3=qq
4=identity_card
5=real_name
6=business_license


[bind]
1=qq
2=weibo
3=taobao
4=alipay
5=renren
6=weichat
7=baidu

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment calculer l'arithmétique binaire Comment calculer l'arithmétique binaire Jan 19, 2024 pm 04:38 PM

L'arithmétique binaire est une méthode d'opération basée sur les nombres binaires. Ses opérations de base comprennent l'addition, la soustraction, la multiplication et la division. En plus des opérations de base, l'arithmétique binaire comprend également les opérations logiques, les opérations de déplacement et d'autres opérations. Les opérations logiques incluent AND, OR, NOT et d'autres opérations, et les opérations de déplacement incluent les opérations de décalage vers la gauche et vers la droite. Ces opérations ont des règles et des exigences d’opérandes correspondantes.

Quelles sont les deux améliorations majeures d'EDVAC ? Quelles sont les deux améliorations majeures d'EDVAC ? Mar 02, 2023 pm 02:58 PM

EDVAC présente deux améliorations majeures : l'une est l'utilisation du binaire et l'autre est l'achèvement du programme stocké, qui peut automatiquement passer d'une instruction de programme à la suivante, et ses opérations peuvent être automatiquement complétées par des instructions. Les « instructions » incluent les données et les programmes qui sont entrés dans le dispositif de mémoire de la machine sous forme de codes, c'est-à-dire que le même dispositif de mémoire qui stocke les données est utilisé pour stocker les instructions permettant d'effectuer des opérations. -appelés programmes stockés.

Comment convertir du binaire en hexadécimal en utilisant le langage C ? Comment convertir du binaire en hexadécimal en utilisant le langage C ? Sep 01, 2023 pm 06:57 PM

Les nombres binaires sont représentés par des 1 et des 0. Le système numérique hexadécimal 16 bits est {0,1,2,3…..9,A(10),B(11),…F(15)} afin de convertir la représentation binaire en hexadécimal Représente que le bit L'ID de chaîne est regroupé en morceaux de 4 bits, appelés quartets en commençant par le côté le moins significatif. Chaque bloc est remplacé par le nombre hexadécimal correspondant. Voyons un exemple pour bien comprendre la représentation des nombres hexadécimaux et binaires. 001111100101101100011101 3 E 5 Chambres d'hôtes

Comment lire des fichiers binaires dans Golang ? Comment lire des fichiers binaires dans Golang ? Mar 21, 2024 am 08:27 AM

Comment lire des fichiers binaires dans Golang ? Les fichiers binaires sont des fichiers stockés sous forme binaire contenant des données qu'un ordinateur peut reconnaître et traiter. Dans Golang, nous pouvons utiliser certaines méthodes pour lire des fichiers binaires et les analyser dans le format de données souhaité. Ce qui suit présentera comment lire des fichiers binaires dans Golang et donnera des exemples de code spécifiques. Tout d’abord, nous devons ouvrir un fichier binaire à l’aide de la fonction Open du package os, qui renverra un objet fichier. Ensuite, nous pouvons faire

Quelle est la principale raison de l'utilisation du binaire dans les ordinateurs ? Quelle est la principale raison de l'utilisation du binaire dans les ordinateurs ? Apr 04, 2019 pm 02:25 PM

Les principales raisons pour lesquelles les ordinateurs utilisent des systèmes binaires : 1. Les ordinateurs sont composés de circuits logiques. Les circuits logiques n'ont généralement que deux états, l'interrupteur est activé et désactivé, et ces deux états peuvent être représentés par « 1 » et « 0 » ; Seuls deux nombres, 0 et 1, sont utilisés dans le système binaire, ce qui est moins sujet aux erreurs lors de la transmission et du traitement, garantissant ainsi une grande fiabilité de l'ordinateur.

Apprenez facilement à convertir l'hexadécimal en binaire en langage Go Apprenez facilement à convertir l'hexadécimal en binaire en langage Go Mar 15, 2024 pm 04:45 PM

Titre : Apprenez facilement à convertir de l'hexadécimal en binaire en langage Go. Des exemples de code spécifiques sont nécessaires. En programmation informatique, des opérations de conversion entre différents nombres de base sont souvent impliquées. Parmi eux, la conversion entre hexadécimal et binaire est relativement courante. Dans le langage Go, nous pouvons réaliser une conversion hexadécimale en binaire grâce à quelques exemples de code simples. Apprenons ensemble. Tout d’abord, jetons un coup d’œil aux méthodes de représentation hexadécimale et binaire. L'hexadécimal est une méthode de représentation des nombres, utilisant 0-9 et A-F pour représenter 1.

Comment exprimer des nombres négatifs en binaire Comment exprimer des nombres négatifs en binaire Nov 23, 2023 pm 04:11 PM

Les nombres négatifs sont représentés dans les ordinateurs en utilisant le complément à deux, c'est-à-dire que les nombres négatifs sont représentés par le complément à deux des nombres positifs.

Quel est le nombre de bits de données binaires qu'un ordinateur peut traiter directement en même temps ? Quel est le nombre de bits de données binaires qu'un ordinateur peut traiter directement en même temps ? Aug 20, 2020 pm 03:44 PM

Lorsqu'un ordinateur traite des données, le nombre de bits de données binaires pouvant être directement traités en même temps est appelé longueur de mot. La longueur du mot fait référence au nombre de bits de données binaires que l'ordinateur peut traiter directement en même temps. Plus la longueur du mot est longue, plus les performances globales de l'ordinateur sont élevées.

See all articles