Gå til innhold

Annenhver bakgrunsfarge nedover!


Anbefalte innlegg

Skrevet (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 av YaNkEs
Videoannonse
Annonse
Skrevet

$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..

Skrevet (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 av PHPdude

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...