バイナリクロスパーミッションマイクロPHPクラスの詳しい説明_PHPチュートリアル

WBOY
リリース: 2016-07-13 10:39:33
オリジナル
887 人が閲覧しました

この記事では主にバイナリクロスパーミッションのmicro-phpクラスを紹介しますので、必要な方は参考にしてください

ハイライト: 1. 多対多のクロスシナリオ割り当て。 2. PHP の新機能 - クロージャとバッチ処理関数の使用 array_walk/array_flip; 3. ビット操作と使用例。 ​ 使用するシーン: 1. 一般的な追加、削除、変更、および検索 (2 の N 乗値がデータベースに保存されます)。 2. 認証、サードパーティアカウントバインディング、複数カテゴリの選択。 ​ コードは以下のように表示されます。 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); } } ​ ​ //すべてのタスクリストを取得する 関数 case_list($mode=false){ $case_list=config($this->scene,'allow'); $mode を返しますか? $case_list : array_keys($case_list); } ​ ​ //ユーザーのタスクリストを取得する 関数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; } } $モードを返す : $buffer : array_keys($buffer); } ​ ​ //許可される値を計算します 関数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); }); array_sum($allow_list) を返します。 } ​ ​ //許可するかどうかを判断する 関数 is_allow($case){ $case_list=array_flip($this->case_list); return (bool)($this->allow_value & pow(2,$case_list[$case]-1)); } } コードは以下のように表示されます。 [アクセス] 1=追加 2=デル 3=読む 4=リスト 5=mod 6=詳細 7=パブ 8=収集 9=いいね 10=送信 ​ ​ [証明書] 1=電子メール 2=電話番号 3=qq 4=アイデンティティカード 5=本名 6=ビジネスライセンス ​ ​ [練る] 1=qq 2=微博 3=タオバオ 4=アリペイ 5=レンレン 6=微チャット 7=百度

www.bkjia.com本当http://www.bkjia.com/PHPjc/730222.html技術記事この記事では主にバイナリ クロス パーミッション マイクロ PHP クラスを紹介します。必要な方は次のハイライトを参照してください: 1. 多対多のクロス シナリオ割り当て; 2. PHP の新機能 - クロージャの使用法、バッチ処理機能...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!