Hi Daniel,
$bitmask = Array(0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80);
if ($foo & $bitmask[$botposition])
Uh, das würde ich dann aber wirklich ausprobieren vorher. Dafür muss der Prozessor ja die Speicherposition ausrechnen
in einer Compilersprache wie C oder gar in Assembler nicht. Da ist die *Adresse* einer Variablen konstant - entweder über die gesamte Laufzeit des Programms (globale statische Variablen), oder zumindest während ihrer Lebensdauer (lokale oder dynamisch reservierte Variablen).
Aber nochmal: Optimierungen auf diesem Level lohnen sich wirklich nur bei extrem zeitkritischen Anwendungen, die z.B. millionenfach in einer Schleife durchgenudelt werden. Für die Mehrheit der Anwendungen ist diese Betrachtung rein akademisch.
So long,
Martin
Lieber blau machen, als sich schwarz ärgern.