Avatar billede gotchi Nybegynder
26. juli 2006 - 20:27 Der er 6 kommentarer

hurtigere if sætning

hvordan siger man nu den der hurtigere if sætning med ? og :

den med
echo $noget = "noget" ? "hej" : "ikke hej";
Avatar billede Slettet bruger
26. juli 2006 - 20:28 #1
$noget = ((1==1) ? "hej" : "ikke hej");
Avatar billede thesurfer Nybegynder
26. juli 2006 - 21:02 #2
Jeg tror at der er overflødige parenteser: $noget = (1==1) ? "hej" : "ikke hej";
Avatar billede Slettet bruger
26. juli 2006 - 22:21 #3
Jep. Det er der også.. Men følgende vil eksempelvis ikke virke:

function foo($username) {
  return "Hi " . ($username=='frank') ? 'Frank' : 'Ukendte' . " Velkommen.";
}
Avatar billede Slettet bruger
28. juli 2006 - 00:30 #4
Ikke at de tidligere indlæg har sagt noget forkert, jeg vil bare lige præcisere lidt.

Selve den ternære operator (Det er det officielle navn. Den betyder treleddet. Alle de andre operatorer har kun et eller to led.) ser basalt således ud:

udtryk1 ? udtryk2 : udtryk3

Hvis udtryk1 evalueres til TRUE, vil udtryk2 blive evalueret, ellers vil udtryk3.

Den kan både bruges alene og på alle steder, hvor et udtryk kan bruges.

Her er et par eksempler:
Avatar billede Slettet bruger
28. juli 2006 - 00:44 #5
Hov, kom til at sende for tidligt. Her er eksemplerne:

$_SESSION['logged_in'] ? vis_brugerstatus() : vis_loginform();

$html = '<table>';
for($i=0;$i<10;$i++)
{
  $html .= '<tr class="';
  $html .= 0==$i%2 ? 'even' : 'odd' ;
  $html .= '"><td>' . $i . '</td></tr>';
}
$html .= '</table>';

echo (0==$aarstal%4 ? (0==$aarstal%100 ? (0==$aarstal%400 ? "Skudår" : "Ikke skudår"): "Skudår") : "Ikke skudår");
Avatar billede Slettet bruger
28. juli 2006 - 00:46 #6
Ikke at jeg vil kalde den sidste for god kodestil. Den er bare en demonstration af, at man sagtens kan indlejre dem i hinanden.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester