最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

二進制交叉權限微型php類分享

 更新時間:2014年02月07日 09:21:59   作者:  
這篇文章主要介紹了二進制交叉權限微型php類,需要的朋友可以參考下

靚點:
1、多對多交叉場景分配;
2、php新特性-閉包使用、批處理函數array_walk/array_flip使用;
3、位運算&使用案例;

使用場景:
1、常見增刪改查(2的N次方值入庫);
2、認證、第三方賬號綁定、多分類選擇;

復制代碼 代碼如下:

<?php

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

相關文章

  • Laravel 5.5 的自定義驗證對象/類示例代碼詳解

    Laravel 5.5 的自定義驗證對象/類示例代碼詳解

    Laravel 5.5 將提供一個全新的自定義驗證規(guī)則的對象,以作為原來的 Validator::extend 方法的替代。接下來通過示例代碼給大家介紹laravel 自定義驗證對象和類,需要的朋友參考下吧
    2017-08-08
  • 微信支付開發(fā)訂單查詢實例

    微信支付開發(fā)訂單查詢實例

    本篇文章主要介紹微信支付中訂單查詢功能的實現(xiàn),并提供代碼實例,希望能幫助到微信支付開發(fā)的小伙伴
    2016-07-07
  • 淺析PHP7 的垃圾回收機制

    淺析PHP7 的垃圾回收機制

    垃圾回收機制是一種動態(tài)存儲分配方案。它會自動釋放程序不再需要的已分配的內存塊。 這篇文章主要介紹了PHP7 的垃圾回收機制,需要的朋友可以參考下
    2019-09-09
  • PHP實現(xiàn)WebService的簡單示例和實現(xiàn)步驟

    PHP實現(xiàn)WebService的簡單示例和實現(xiàn)步驟

    這篇文章主要介紹了PHP實現(xiàn)WebService的簡單示例和實現(xiàn)步驟,本文直接給出示例代碼并分步驟講解,需要的朋友可以參考下
    2015-03-03
  • PHP Streams(流)詳細介紹及使用

    PHP Streams(流)詳細介紹及使用

    這篇文章主要介紹了PHP Streams(流)詳細介紹及使用,PHP Streams是內置核心操作,可能一般的開發(fā)者很少用,它用于統(tǒng)一文件、網絡、數據壓縮等類文件操作方式,并為這些類文件操作提供一組通用的函數接口,需要的朋友可以參考下
    2015-05-05
  • PHP中的socket_read和socket_recv區(qū)別詳解

    PHP中的socket_read和socket_recv區(qū)別詳解

    這篇文章主要介紹了PHP中的socket_read和socket_recv區(qū)別詳解,本文從源碼上分析了這兩個函數的不同之處,需要的朋友可以參考下
    2015-02-02
  • laravel框架創(chuàng)建授權策略實例分析

    laravel框架創(chuàng)建授權策略實例分析

    這篇文章主要介紹了laravel框架創(chuàng)建授權策略,結合實例形式分析了laravel框架創(chuàng)建授權策略的相關步驟、實現(xiàn)方法與操作注意事項,需要的朋友可以參考下
    2019-11-11
  • PHP日期時間函數date() 詳解

    PHP日期時間函數date() 詳解

    date()函數是我們在php開發(fā)中常碰到并且會使用到的一個日期函數,下面我來給大家介紹date()函數的一些基本扮靚和方法,感興趣的朋友跟隨小編一起看看吧
    2023-06-06
  • php判斷是否連接上網絡的方法實例詳解

    php判斷是否連接上網絡的方法實例詳解

    本文主要介紹PHP判斷是否連接上網絡的方法,通過php判斷能否打開百度頁面來判斷是否連接上網絡的功能,需要的朋友可以參考下
    2016-12-12
  • Laravel如何使用數據庫事務及捕獲事務失敗后的異常詳解

    Laravel如何使用數據庫事務及捕獲事務失敗后的異常詳解

    最近在學習Laravel,在學習中遇到了不少的問題,所以想著總結記錄下來,所以下面這篇文章主要給大家介紹了關于Laravel如何使用數據庫事務及捕獲事務失敗后異常的相關資料,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-10-10

最新評論

诸城市| 镇平县| 呼和浩特市| 民勤县| 乌兰察布市| 抚远县| 襄城县| 大化| 深泽县| 泽州县| 罗源县| 嘉荫县| 寿光市| 庆云县| 宜章县| 定日县| 运城市| 深州市| 阿拉善右旗| 洱源县| 易门县| 吉安县| 新晃| 湖南省| 博兴县| 视频| 五原县| 武冈市| 阿拉善右旗| 赫章县| 肥东县| 岑巩县| 澳门| 德化县| 喀什市| 河南省| 普定县| 台中县| 周口市| 仁布县| 贡嘎县|