Koden kan vara fel, men principen är som följer: Du kontrollerar om radnumret är ett udda eller ett jämnt tal. Udda rader får en färg och jämna en annan.
Tack för tipsen pojkar, jag ska byta datum formatet, försöka ordna så att HTML inte fungerar, och kolla om man ska skicka iväg användaren direkt till noteringarna när man uppdaterat ett inlägg.
Jojo, hur det ska implementeras förstår jag. Det är bara raden med (++$i & 1) som är oklar. Hur kan det uttrycket vara en if-sats? Vad innebär "++$i & 1"?
Om du har använt dig av VB nångongång finns det en funktion som heter Iif, som först kollar ett uttryck, om det är sant returneras en true-sträng, annars en false-sträng.
Används i VB så här:
variabel = Iif(2 > 1, "Truedelen som returneras", "Falsedelen som returners")
variabeln får värdet "Trudelen som returneras", eftersom att uttrycket är sant.
(++$i & 1) ? '#FFFFFF' : '#EEEEEE'; fungerar likadant, fast det är då PHP, C, C#, Java som använder den typen...
Om uttrycket är sant returneras '#FFFFFF', annars returneras '#EEEEEE'
Oklarheten ligger i hur (++$i & 1) ska kunna tolkas som en if-sats. Vad innebär "++$i", och vad efterfrågas med "& 1"? Om man skulle omforma uttrycket till en "if variabel = värde then", hur skulle den då se ut?
I mina ögon står det bara "variabeln i och 1" innanför parentesen. "++" är jag inte bekant med (enbart sysslat med ASP innan).
Ledsen om det börjar bli lite långdraget, men jag förstår verkligen inte sättet att skriva :O
En vanlig IF-sats ser ju ut så här
IF <test> THEN
<true result>
ELSE
<false result>
där <test> är det som skall provas tex om ett tal är udda eller ej. <test> returnerar alltid "sant" eller "falskt".
Vid sant körs <true result> och vid "falskt", <false result>
På samma sätt funkar ?:-konstruktionen
<test> ? <true result> : <false result>
I detta fall är test-operationen en operation för att avgöra om ett tal, $i, är udda eller jämnt. (++$i & 1) innebär att först ökas $i med 1, plus-plus betyder öka med ett, &-operatorn är bitvis AND. Ett tal som är udda som AND-at med 1 returnerar "sant", ett jämnt "falskt".
(Vill man öka $i efter testet skriver man $i++.)
Jag hade nog använd "mod-operatorn" % istället:
$bgColor = (++$i % 2) ? '#FFFFFF' : '#EEEEEE';
resutlatet blir dock det samma...
(++$i & 1)
Betyder:
Öka på $i med ett och gör sedan bitvis OCH mot värdet 1.
Bitvis OCH med 1 resulterar i noll eller ett, och dessa kan som bekant användas som logiska värden. Sen ska ju koden se ut så här för att vara ball ;) :
# Innan loopen:
$färger = array('FFFFFF', 'EEEEEE');
$varv = 0;
...
# I loopen:
echo $färger($varv++ % 2);
Ang. TODO-listan
Tycker man ska komma till listan över anteckningar när man lagt till en anteckning, isf att hamna på "lägg till ny"-sidan.
\t Asch, Nicke han före
------------------ These are the cries of the carrots, the cries of the carrots! You see, Reverend Maynard, tomorrow is harvest day and to them it is the holocaust.
[Redigerat av spango den 31 maj 2001]
254 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849