你好 Heizer,
$output soll nun so gesetzt werden, daß entweder ein GIF oder ein PNG
oder ein JPEG oder eine Kombination aus diesen geschrieben oder
zurückgegeben wird. Ich denke mir also:
RETURN = 0
WRITE = 1
GIF = 2
PNG = 4
JPEG = 8$output kann also werte von 1 - 15 haben (das kann sich aber
natürlich noch erweitern). Meine Frage ist also, ob jemand eine
allgemeine Funktion weiß, mit der ich diese Bitwerte einzeln bekomme.
Die Funktion ist ganz einfach: du gehst alle Bits durch und pruefst, ob
es gesetzt ist. Kann man z. B. so machen:
function test($var) {
$max = 32;
$ret = Array();
for($i=0;$i<$max;++$i) {
$val = (1<<$i);
if($var & $val) $ret[] = $val;
}
return $ret;
}
var_dump(test(1|2|4));
Ich bin von 32 ausgegangen, weil 32 Bit-Rechner normal sind. Bei 64
Bit-Maschinen muss man $max eventuell hoeher setzen, um alle Bits
abzudecken, aber 32 Bit sollten eigentlich fuer alle Masken reichen.
再见,
CK