Gå til innhold

Flere IF tilstander i samme IF syntax.


Anbefalte innlegg

Videoannonse
Annonse

antar du tenker på noe alla dette (som går helt fint av ja)

 

PHP

if ($variabel1 == "etellerannet" && $variabel2 => "etellerannet") {

$variabel3 = "etellerannet";

}

Du kan jo lese litt mer om bitwise og logical operators på:

http://no.php.net/manual/en/language.operators.logical.php

http://no.php.net/manual/en/language.operators.bitwise.php

 

Edit: skrev vist litt feil først der ja...

Endret av magikern
Lenke til kommentar
Jeg tror du også kan skrive AND og OR, i stedet for && og ||.

8134746[/snapback]

Jepp, men man skal være litt varsom med AND og OR siden PHP er av de språkene hvor de har lavere presidens enn && og ||. Bruk av AND og OR kan gi bugs som er høyst vanskelig å se.

Lenke til kommentar
Jeg tror du også kan skrive AND og OR, i stedet for && og ||.

8134746[/snapback]

Jepp, men man skal være litt varsom med AND og OR siden PHP er av de språkene hvor de har lavere presidens enn && og ||. Bruk av AND og OR kan gi bugs som er høyst vanskelig å se.

8143940[/snapback]

 

Derfor er det en god regel å gruppere ting med paranteser, selv om det ikke er høyst nødvendig.

 

Eksempel:

PHP

<?php

if ($this->todo == 'new_reply' || $this->todo == 'new_topic' && $this->user->g_create_new_posts == 0)

{

error_msg($this->lang->cant_post);

}

?>

 

Hva kodesnutten skal gjøre, er å sjekke om brukeren har rettigheter til å skrive nye innlegg, men bare hvis handlingen er new_reply eller new_topic. Feilen ligger i manglende gruppering, og med ang gang handlingen er new_reply vil hele if-setningen bli evaluert som sann (alt etter || vil ikke gjøres, da det er nok at første er sann). Resultatet er at ethvert forsøk på nytt svar gir feilmelding om manglende rettigheter til å skrive innlegg, uavhengig av brukernivå.

 

Fikset eksempel:

PHP

<?php

if (($this->todo == 'new_reply' || $this->todo == 'new_topic') && $this->user->g_create_new_posts == 0)

{

error_msg($this->lang->cant_post);

}

?>

 

:)

Lenke til kommentar

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