Hallo liebe Leute!
Ich experementiere an einer Funktion die eine variable Anzahl an Parametern hat. Der letzte Parameter soll dabei ein Options-Argument sein. Um diesen von den anderen unterscheiden zu können, möchte ich Hexadezimal-Werte (wegen den '0x') für die Optionen verwenden. Dabei habe ich ein paar Schwierigkeiten mit der Berechnung. Hier als Beispiel sind es Variablen, in der Funktion später werden Konstanten verwendet.
$o1 = '0x01'; // 1
$o2 = '0x02'; // 2
$o3 = '0x04'; // 4
$o4 = '0x08'; // 8
$o5 = '0x10'; // 16
$o = $o1 | $o5;
echo hexdec($o); // gibt 17 aus: richtig
$o = $o2 | $o5;
echo hexdec($o); // gibt 18 aus: richtig
$o = $o1 | $o2 | $o3;
echo hexdec($o); // gibt 7 aus: richtig
$o = $o3 | $o4 | $o5;
echo hexdec($o); // gibt 1 aus: falsch, sollte 28 sein
$o = $o1 | $o2 | $o3 | $o4 | $o5;
echo hexdec($o); // gibt 1 aus: falsch, sollte 31 sein
Es kann jetzt natürlich sein, dass das prefix '0x' diesen Wurst verursacht, aber warum funzt es dann manchmal überhaupt?
Könnt ihr mir dabei bitte behilflich sein?
lg lixx