Operatorer
Operatorer kan du använda till att antingen påverka en variabel eller jämföra den med ett värde, alternativt en annan variabel. Det klassiska operatorsexemplet är vanlig addition, 2+2=4. I uttrycket kallar man de båda tvåorna för operander och plustecknet för en operator. Detta skulle lika gärna kunnat ske med PHP-variabler, $c=$a+$b.
Det finns olika sorters operatorer. Först ut är de aritmetiska operatorerna.
Aritmetiska operatorer
Har du koll på din lågstadiematte? För det är ungefär det som de aritmetiska operatorerna handlar om. Nedan finner du en tabell med dessa operatorer och tillhörande förklaringar.
Exempel | Namn | Resultat |
$a + $b | Addition | Summan av $a och $b. |
$a - $b | Subtraktion | Skillnaden mellan $a och $b. |
$a * $b | Multiplikation | Produkten av $a och $b. |
$a / $b | Division | Kvoten av $a och $b. |
$a % $b | Modulus | Resten vid divisionen $a / $b. |
Jämförande operatorer
Ofta handlar programmering om att jämföra två uttryck med varandra. För att göra detta använder du dig av de jämförande operatorerna. Du kan till exempel kontrollera ifall värdet på två variabler är lika, det gör du med operatorn ”==”. Nedan finner du en tabell med dessa operatorer och tillhörande förklaringar.
Exempel | Namn | Resultat |
$a == $b | Lika | Sant om $a är lika med $b. |
$a === $b | Identiska | Sant om $a är lika med $b, och de är av samma variabeltyp (PHP4 och senare). |
$a != $b | Ej lika | Sant om $a inte är lika med $b. |
$a <> $b | Ej lika | Sant om $a inte är lika med $b. |
$a !== $b | Ej identiska | Sant om $a inte är lika med $b, eller om de inte är av samma typ (PHP4 och senare). |
$a < $b | Mindre än | Sant om $a är mindre än $b. |
$a > $b | Större än | Sant om $a är större än $b. |
$a <= $b | Mindre eller lika med | Sant om $a är mindre än eller lika med $b. |
$a >= $b | Större eller lika med | Sant om $a är större än eller lika med $b. |
Mycket mer finns inte att säga om dessa operatorer. Du kommer att stöta på dem framförallt i kapitlet om villkorssatser, där kommer vi använda dem i mer praktiska exempel.
Logiska operatorer
De logiska operatorerna kombinerar du med de jämförande och kan på det sättet validera flera uttryck på en gång. Nedan finner du en tabell med dessa operatorer och tillhörande förklaringar.
Exempel | Namn | Resultat |
$a and $b | Och | Sant om både $a och $b är sant. |
$a or $b | Eller | Sant om antingen $a eller $b är sant. |
$a xor $b | Xor | Sant om antingen $a eller $b är sant, men inte om båda är sanna. |
! $a | Inte | Sant om $a inte är sant. |
$a && $b | Och | Sant om både $a och $b är sant. |
$a | | $b | Eller | Sant om antingen $a eller $b är sant. |
Jag säger samma sak om dessa operatorer som med de jämförande, användningen av dem kommer gå upp för dig när du ser mer exempelkod. Att visa praktiska exempel nu skulle inte gå då vi inte gått igenom sådana saker som villkorssatser ännu.
”-” operatorn
Förutom att utföra subtraktion kan du använda ”-” operatorn till att negera tal.
Exempel
PHP:
<?php
$a = 2;
$b = -3;
/* Först visar vi det snabba, enkla sättet */
echo -$a;
echo '<br />';
echo -$b;
echo '<br />';
/* Sen det lite mer omständliga, här har du dock chans att förstå hur - operatorn fungerar. */
echo (-1)*$a;
echo '<br />';
echo (-1)*$b;
echo '<br />';
?>
Strängoperatorn
En vanlig operator som du kanske redan träffat på är strängoperatorn. Det är punkten (.) som används för att lägga ihop två stycken strängar. För att förstå det bättre visar vi ett litet exempel:
Exempel
PHP:
<?php
$strang1 = 'Detta är';
$strang2 = ' en sträng';
$strang3 = $strang1 . $strang2;
/* Detta skriver ut: ‘Detta är en sträng' */
echo $strang3;
?>
Tilldelningsoperatorn
Detta är förmodligen den mest använda operatorn av dem alla. Förväxla inte tilldelningsoperatorn (=) med den jämförande operatorn som validerar om två värden är lika varandra (==). Denna förväxling är någonting som du garanterat kommer råka ut för och det är ofta svårt att felsöka.
Det tilldelningsoperatorn gör är att den tilldelar en variabel värdet av det uttryck som står höger om den. Uttrycket kan vara en hårdkodad siffra, en variabel eller resultatet av en körd funktion (mer om funktioner i kommande kapitel).
Exempel
PHP:
<?php
$siffra1 = 5;
$siffra2 = 3.28;
$siffra3 = $siffra1/$siffra2;
$strang1 = 'Detta är en sträng';
$strang2 = geMigEnStrang();
/* Tänk på att geMigEnStrang() inte är en inbyggd funktion i PHP utan en som du själv måste definiera. Kodexemplet kommer därför inte vara körbart. */
?>
Smarta genvägar
Nedan finner du en tabell med lite smarta genvägar vid variabeltilldelning. Som du ser används de operatorer som vi tidigare i kapitlet gått igenom.
Exempel | Motsvarar |
$a += $b | $a = $a + $b |
$a -= $b | $a = $a - $b |
$a *= $b | $a = $a * $b |
$a /= $b | $a = $a / $b |
$a %= $b | $a = $a % $b |
$a .= $b | $a = $a . $b |
$a++ | $a = $a + 1 |
++$a | $a = $a + 1 |
$a-- | $a = $a - 1 |
--$a | $a = $a - 1 |
Exempel
PHP:
<?php
/* Exempel 1 */
$a = 20; //$a tilldelas nu värdet 20
$a++; //$a sätts nu till 21
/* Exempel 2 */
$b = 20; //$b tilldelas nu värdet 20
++$b; //$b sätts nu till 21
/*
Så långt inga problem, men nedan visas skillnaderna mellan de olika metoderna.
*/
/* Exempel 3 */
$a = 20; //$a tilldelas nu värdet 20, precis som innan
$b = $a++; //$a sätts till 21 medan $b bara får värdet 20.
/* Exempel 4 */
$a = 20; //$a tilldelas nu värdet 20
$b = ++$a; //Både $a och $b är efter denna satsen 21.
?>
Kapitlet har som du sett mest varit ett tragglande i olika tabeller. Jag har med avsikt hållit nere mängden exempel här. Anledningen är att betydelsen ofta är ganska självklar, det finns ingen anledning publicera exempel som ett självändamål.