Yankes Skrevet 18. januar 2007 Skrevet 18. januar 2007 (endret) while($shout = mysql_fetch_array($resultat)) { print("<div class=\"shout\" align=\"left\"> <b>{$shout['brukernavn']}</b>: {$shout['melding']}</div>"); } Jeg bruker denne nå på en shoutbox jeg har laget! Men jeg vil at annenhver <div>-tag skal ha bakgrunsfargen hvit og de andre grå! Jeg vil at disse to skal printes annenhver gang: <div class=\"shout1\" align=\"left\"> <b>{$shout['brukernavn']}</b>: {$shout['melding']}</div> <div class=\"shout2\" align=\"left\"> <b>{$shout['brukernavn']}</b>: {$shout['melding']}</div> Noen forslag? Endret 18. januar 2007 av YaNkEs
stian90_2 Skrevet 18. januar 2007 Skrevet 18. januar 2007 $shout1 = "shout1"; $shout2 = "shout2"; $shout = ($i++ & 1) ? $shout1 : $shout2; Den funker helt fin fint da blir det slik <div class=\"$shout\" align=\"left\"> osv osv..
Ståle Skrevet 18. januar 2007 Skrevet 18. januar 2007 Den setningen så smart ut. Kan du forklare hvordan den virker?
PHPdude Skrevet 19. januar 2007 Skrevet 19. januar 2007 (endret) $shout = ($i++ & 1) ? $shout1 : $shout2; Først så har han benyttet syntaksen for forkortet IF-test, altså som dette: echo ($IF_THIS_IS_TRUE) ? $ECHO_THIS : $ELSE_ECHO_THIS; Dette kunne man skrevet som dette med "vanlig IF-test": if($IF_THIS_IS_TRUE) { echo $ECHO_THIS; } else { echo $ELSE_ECHO_THIS; } Som du ser er den forkortede versjonen mye lettere å lese (hvertfall når man blir vant til det). Det du kanskje stusser mest på er "($i++ & 1) ". Her bruker han "&" for å sjekke bitverdien til $i opp mot bitverdien til 1. For å skjønne dette må du ha en god forståelse for totallsystemet. 1 vil ha bitverdien 1000.. og $i vil øke med 1 for hver gang løkka kjøres så første gang løkka kjøres vil både 1 og $i ha lik bitverdi og det "&" gjør er at den sjekker etter om de to verdiene har noen av de samme "kolonnene aktivert", så første gang: 1 = 1000 $i = 1000 (1 & $i) Evalueres til TRUE Andre gang: 1 = 1000 $i = 0100 (1 & $i) Evalueres til FALSE Tredje gang: 1 = 1000 $i = 1100 (1 & $i) Evalueres til TRUE Fjerde gang: 1 = 1000 $i = 0010 (1 & $i) Evalueres til FALSE OSV OSV OSV. Som du ser vil resultatet bli TRUE når begge verdiene har første "kolonne" aktivert. Kunne sikkert hvert forklart bedre, men dette er rimelig avansert og har ikke mye erfaring med det selv, men håper du hvertfall får en viss ide om poenget. Sjekk også ut sider som: http://no2.php.net/manual/en/language.operators.bitwise.php http://en.wikipedia.org/wiki/Bitwise_operation og google bitwise Endret 19. januar 2007 av PHPdude
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå