Guide: Kontrollering av verdier

PHP- & MySQL-innføring: Kapittel 3

Logiske operatorer

En logisk operator er en operator som forbinder logiske uttrykk (som boolske uttrykk) til å produsere nye boolske verdier (TRUE eller FALSE). Med andre ord forbinder logiske operatorer flere uttrykk sammen, og utfører funksjoner avhengig av utfallet av uttrykkene. Som i alle programmeringsspråk finnes det i PHP en rekke logiske operatører. Først ser vi på &&, på engelsk kalt "and" ("og").

$number1 = 5;
$number2 = 10;
$number3 = 12;
$number4 = 15;

if ($number1 < $number2 && $number4 > $number3)
{
   echo "Uttrykkene stemmer";
}
else
{
   echo "Uttrykkene stemmer ikke";
}

I dette eksempelet bruker vi den logiske operatoren && for å indikere at både uttrykket "5 er mindre enn 10" og uttrykket "15 er mer enn 12" må stemme for at kontrolleringen skal returnere TRUE, og dermed gjennomføre kommandoen(e). I dette skriptet stemmer begge uttrykkene, og vi vil derfor få teksten "Uttrykkene stemmer".

På samme måte kan vi gjennomføre en kontroll som kun krever at én av uttrykkene skal stemme, ved hjelp av || (på engelsk "or", norsk "eller").

$number1 = 5;
$number2 = 10;
$number3 = 15;
$number4 = 12;

if ($number1 < $number2 || $number4 == $number3)
{
   echo "Ett eller flere av uttrykkene stemmer";
}
else
{
   echo "Ingen av uttrykkene stemmer";
}

I dette eksempelet stemmer uttrykket "5 er mindre enn 10", mens uttrykket "12 er lik 15" ikke stemmer. || indikerer imidlertid at det er nok at ett av uttrykkene stemmer, og vi vil derfor få returnert teksten "Ett eller flere av uttrykkene stemmer".

Vi kan også sette sammen flere logiske operatorer i en og samme if-gren. Skal vi gjøre dette gjøres det på følgende måte:

$var1 = 1;
$var2 = 1;
$var3 = 2;

if (($var1 == $var2 && $var2 < 1) || ($var1 != $var3 && $var3 > $var2))
(...)

(Hvor (...) representerer det videre skriptet.)

Her er en liste over alle logiske operatorer i PHP5:

  • and - Er sann hvis begge uttrykkene stemmer
  • or - Er sann hvis minst ett av uttrykkene stemmer
  • xor - Er sann hvis ett av (men ikke begge) uttrykkene er sanne
  • && - Akkurat samme som and
  • || - Akkurat samme som or
  • ! - Er sann hvis uttrykket til høyre er usant