Ik loop tegen een probleem aan met het verwerken van hexadecimale waarden in een switch/case loop. Dit doe ik:
Nu werkt dit perfect voor de waarden 0x00 t/m 0x09, maar alles van 0x0A en hoger pakt ie niet. Hij gaat dan dus niet naar de code die bij 'case 0x0A' staat. Het lijkt net alsof ie die waarden niet herkent. Ik heb al geprobeert om andere notaties te gebruiken (0xa, 0xA, 0x0a, 0x0A, \x0a, \x0A, '\x0A') maar dat hielp niet.
Waarschijnlijk komt het omdat er bij de switch statement een string wordt ingelezen en bij de case statements een integer wordt opgegeven, maar $byte converteren naar een integer d.m.v. settype($byte, 'integer') hielp ook niet.
Heeft iemand enig idee wat ik hier over het hoofd zie?
PHP:
1
2
3
4
5
6
7
8
9
10
11
| while (!feof($handle)) { $byte = fgetc($handle) switch($byte) { case 0x00 : echo '0x00'; break; case 0x01 : echo '0x01'; break; } } |
Nu werkt dit perfect voor de waarden 0x00 t/m 0x09, maar alles van 0x0A en hoger pakt ie niet. Hij gaat dan dus niet naar de code die bij 'case 0x0A' staat. Het lijkt net alsof ie die waarden niet herkent. Ik heb al geprobeert om andere notaties te gebruiken (0xa, 0xA, 0x0a, 0x0A, \x0a, \x0A, '\x0A') maar dat hielp niet.
Waarschijnlijk komt het omdat er bij de switch statement een string wordt ingelezen en bij de case statements een integer wordt opgegeven, maar $byte converteren naar een integer d.m.v. settype($byte, 'integer') hielp ook niet.
Heeft iemand enig idee wat ik hier over het hoofd zie?
Acorn BBC B [ 65C02@2MHz; 32k RAM; Solidisk Sideways 128k; Solidisk 1770 ADFS; Econet ]