[PHP-users 3404] Re: 論理積での条件分けについて

Osamu Shigematsu php-users@php.gr.jp
Thu, 08 Nov 2001 12:48:49 +0900


重松です。

on 01.11.8 0:35 PM, TMR at tmr@mbi.nifty.com wrote:

> TMRと申します。
> 
> 変数manにA,B,Cのどれかの値が入っているとします
>  A=111 (ALL権限)
>  B=010
>  C=001
> 
> 条件で、
>  条件I = 111 で 制限なしページ へ
>  条件J = 011 で Aの人専用ページ へ
>  条件K = 101 で A,Bの人用ページ へ
>  条件L = 110 で A,Cの人用ページ へ
> とやりたいのですが、

表を使えばいいのでは。

$man_t =
array
(
    'A' => 7,
    'B' => 2,
    'C' => 1
);

あるいは、

$perm1 = 1 << 0; // 権限1
$perm2 = 1 << 1; // 権限2
$perm3 = 1 << 2; // 権限3

$man_t[A] = -1; // 全ての権限
$man_t[B] = $perm3 | $perm1;
$man_t[C] = $perm3 | $perm2;

のようにもっと整理するとか。
当然、見やすいですが計算するから遅い。
(APC とか使えばオーバヘッドはなくなると思いますが)

あとは、正規表現を使うという方法もあるかと思います。

-- 
Osamu Shigematsu

http://www.ravi.ne.jp/%7eshige/
mailto:shige@ravi.ne.jp