Hi,
Mein Problem: ich stehe da gerade ein bißchen neben mir. :)
Wie definiere ich die Modes ?
die einzelnen Flags entsprechen einer Bit-Position in einer Ganzzahl. Ist das entsprechende Bit = 1, ist das Flag gesetzt. D.h., deine "Modes" müssen einer Bit-Position entsprechen:
define('MODE_DEFINE1', 1);
define('MODE_DEFINE2', 2);
define('MODE_DEFINE3', 4);
define('MODE_DEFINE4', 8);
usw...
wenn du nun
$interface->setMode(MODE_DEFINE1 | MODE_DEFINE2);
aufrufst, übergibst du der Methode setMode die Zahl 3, die dann in der Ganzzahl gespeichert werden muss.
Wie lese ich die übergebenen Werte aus ?
In der Methode setMode()? Eigentlich gar nicht. Du speicherst einfach z.B. durch
$this->mode = $uebergabe;
die Übergabe in besagter Ganzzahl, hier $interface->mode. Diese Ganzzahl entspricht nun der Zahl 3, da das 1er- und das 2er-Bit gesetzt sind. Ob ein Bit gesetzt ist, fragst du dann ab, indem du eine &-Operation ausführst:
MODE_DEFINE1 ist nur gesetzt, wenn (MODE_DEFINE1 & $interface->mode) nicht 0 ergibt.
Gruß,
Andreas.