phpbar.de logo

Mailinglisten-Archive

[php] User-Flags

[php] User-Flags

Tim Strehle php_(at)_phpcenter.de
Tue, 19 Feb 2002 12:11:23 +0100


Hallo Markus,

"Tacker, Markus" wrote:
> Ich habe mal eine Rechte-Vergabe mit folgender Methode gesehen (aber nicht
> verstanden *g*):
> 
> 1 = group a
> 2 = group b
> 4 = group c
> 8 = group d
> 16
> 128
> 256
> 
> Ein User in den Gruppen a,b und d hätte dann 1 + 2 + 8 = 11
> 
> Mein Frage ist jetzt: Hat jemand sowas schon gebaut, und wie werte ich das
> Ergebnis aus?

das kann man so machen:

==============================================================
define("GROUP_A", 1<<1);
define("GROUP_B", 1<<2);
define("GROUP_C", 1<<3);
define("GROUP_D", 1<<4);
define("GROUP_E", 1<<5);

$records = array(
    array( "ID" => 1, "NAME" => "Sven", "GROUPS" => GROUP_A | GROUP_C ),
    array( "ID" => 2, "NAME" => "Jörn", "GROUPS" => GROUP_B | GROUP_C |
GROUP_D )
    );

reset($records);
while (list(,$record) = each($records))
  { if ($record[ "GROUPS" ] & GROUP_B)
      echo $record[ "NAME" ] . " ist in GROUP_B\n";
    else
      echo $record[ "NAME" ] . " ist nicht in GROUP_B\n";

    if ($record[ "GROUPS" ] & GROUP_C)
      echo $record[ "NAME" ] . " ist in GROUP_C\n";
    else
      echo $record[ "NAME" ] . " ist nicht in GROUP_C\n";
  }
==============================================================

Schau mal ins PHP-Manual unter "Bit-Operatoren", da müßte alles Nötige
drin stehen:

http://www.php3.de/manual/de/language.operators.bitwise.php

Gruß,
Tim

-- 
-------------------------------------------------------
Tim Strehle
Development
                          
Digital Collections              Phone: +49 40 235 35 0
Hammerbrookstr. 93               Fax: +49 40 235 35 180
20097 Hamburg / Germany          http://www.digicol.com
-------------------------------------------------------


php::bar PHP Wiki   -   Listenarchive