ERILAISET OPERAATTORI

Operaattoreilla esimerkiksi voidaan laskea, muuttaa muuttujan arvoa, vertailla muuttujin sisältöä tai rakentaa looginen lause suoritettavaksi. Tässä osassa esitellään PHP:n erilaisia operaattoreita.


ARITMEETTISET-OPERAATTORIT

Aritmeetisilla-operaattoreilla suoritetaan yksinkertaisia laskutoimituksia, yhteen-, vähennys-, kerto- ja jakolaskuja sekä jakojäännöksen selvittäminen.

$tulos = $muuttuja1 operaattori $muuttuja1;



Esimerkissä on käytetty kaikkia aritmeettisia operaattoreita.

/* Aritmeettiset-operaattorit */ <php $tulos = 0; $luku1 = 5; $luku2 = 2; $tulos = $luku1 + $luku2; echo $tulos . "<br>"; $tulos = $luku1 - $luku2; echo $tulos . "<br>"; $tulos = $luku1 * $luku2; echo $tulos . "<br>"; $tulos = $luku1 / $luku2; echo $tulos . "<br>"; $tulos = $luku1 % $luku2; echo $tulos . "<br>"; /* $tulos = $luku1 ** $luku2; Yllä, PHP 5.6:n potenssilasku */ ?>


7
3
10
2.5
1


Taulukossa lyhyemmät tavat kirjoittaa operaattorit.
Operaattori echo:n yhteydessä Tulos luku1 muuttujaan
$tulos = $luku1 + $luku2; echo $luku1 + $luku2; $luku1 += $luku2;
$tulos = $luku1 - $luku2; echo $luku1 - $luku2; $luku1 -= $luku2;
$tulos = $luku1 * $luku2; echo $luku1 * $luku2; $luku1 *= $luku2;
$tulos = $luku1 / $luku2; echo $luku1 / $luku2; $luku1 /= $luku2;
$tulos = $luku1 % $luku2; echo $luku1 % $luku2; $luku1 %= $luku2;


Tehtävä 1 Kokeile taulukon (yllä) Tulos luku1 muuttujaan-sarakkeen kaikkia operaattoreita vaihtamalla taulukon esimerkit aiemmin yllä olevaan esimerkki-ohjelmaan.


Takaisin oppaaseen

VERTAILU-OPERAATTORIT

Vertailu-operaattoreiden avulla voidaan verrata muuttujassa olevaa tietoa numero-arvoon, merkkiin tai merkkijonoon. Vertailtavat tiedot voivat myös olla molemmat muuttujiin talletettuina.

Esimerkissä tutkitaan var_dump()-funktion avulla pitääkö vertailu paikkansa, eli onko kyseessä tosi vai epätosi lauseke.

/* Vertailu-operaattoreita */ <?php $Luku_1 = 5; $Luku_2 = "5"; echo "Onko luku_1 < luku_2 --> "; //pienempi var_dump($Luku_1 < $Luku_2); echo "Onko luku_1 > luku_2 --> "; //suurempi var_dump($Luku_1 > $Luku_2); echo "Onko luku_1 <> luku_2 --> "; //eri suuri var_dump($Luku_1 <> $Luku_2); echo "Onko luku_1 >= luku_2 --> "; //suurempi tai yhtäsuuri var_dump($Luku_1 >= $Luku_2); echo "Onko luku_1 <= luku_2 --> "; //pienempi tai yhtäsuuri var_dump($Luku_1 <= $Luku_2); echo "Onko luku_1 != luku_2 --> "; //eri suuri var_dump($Luku_1 != $Luku_2); echo "Onko luku_1 !== luku_2 --> "; //ei ole identtinen var_dump($Luku_1 !== $Luku_2); echo "Onko luku_1 == luku_2 --> "; //yhtäsuuri var_dump($Luku_1 == $Luku_2); echo "Onko luku_1 === luku_2 --> "; //identtinen var_dump($Luku_1 === $Luku_2); ?>


Onko luku_1 < luku_2 --> bool(false) Onko luku_1 > luku_2 --> bool(false) Onko luku_1 <> luku_2 --> bool(false) Onko luku_1 >= luku_2 --> bool(true) Onko luku_1 <= luku_2 --> bool(true) Onko luku_1 != luku_2 --> bool(false) Onko luku_1 !== luku_2 --> bool(true) Onko luku_1 == luku_2 --> bool(true) Onko luku_1 === luku_2 --> bool(false)


Tehtävä 2 Puuttuu toistaiseksi, esimerkin vertailuja tarvitaan ehto-rakenteissa.


Takaisin oppaaseen

LOOGISET-OPERAATTORIT

Loogisilla operaattoreilla "voidaan muodostaa looginen kokonaisuus jonka perusteella tehdään jokin asia".

AND sekä OR

AND-operaattorilla yhdistetään kaksi ehtoa joiden molempien pitää olla totta. OR-operaattorilla yhdistetään kaksi ehtoa joista toisen tai molempien pitää olla totta.

Esimerkissä kaksi if-lausetta:
Jos lukuA on yhtäsuuri kuin 5 "JA" lukuB on yhtäsuuri kuin 3,
näytetään teksti
.
Jos lukuA on yhtäsuuri kuin 0 "TAI" lukuB on yhtäsuuri kuin 3,
näytetään teksti
.

<?php $lukuA = 5; $lukuB = 3; if ($lukuA == 5 and $lukuB == 3) { echo "Näytetään tämä, koska AND-lauseke on tosi."; } if ($lukuA == 0 or $lukuB == 3) { echo "<br>Näytetään tämäkin, koska OR-lauseke on tosi."; } ?>


Näytetään tämä, koska AND-lauseke on tosi.
Näytetään tämäkin, koska OR-lauseke on tosi.


Tehtävä 3 Sijoita muuttujiin sanat: teksti1 = kissa teksti2 = koira Kokeile esimerkin pohjalta toimiiko vertailut kun muuttujissa olevaa tietoa vertataan seuraavasti: jos teksti1 on yhtäsuuri kuin kissa ja teksti2 on yhtäsuuri kuin koira tulostuu: Kissa ja koira on nisäkkäitä. jos teksti1 on yhtäsuuri kuin varis tai teksti2 on yhtäsuuri kuin koira tulostuu: Varis on lintu ja koira on nisäkäs. (huom! Mikäli teksti-vertailu ei ole mahdollista, jätä tekemäsi esimerkki kommenttina www-sivulle)


Takaisin oppaaseen

XOR

XOR-operaattorilla yhdistetään kaksi ehtoa siten että, vain toisen pitää olla totta mutta ei molempien.

/* XOR */ <?php $luku1 = 1; $luku2 = 2; if ($luku1 == 3 xor $luku2 == 2) { echo "Toinen ehdoista oli totta !"; } if ($luku1 == 3 xor $luku2 == 3) { echo "Kumpikaan ehdoista ei ole totta !"; } if ($luku1 == 1 xor $luku2 == 2) { echo "Molemmat ehdot oli totta !"; } ?>


Toinen ehdoista oli totta !


Tehtävä 4 Kokeile esimerkkiä ja muuta se tutkimaan edellisen tehtävän 3 tekstejä. (huom! Mikäli teksti-vertailu ei ole mahdollista, jätä tekemäsi esimerkki kommenttina www-sivulle)


Takaisin oppaaseen

NOT

NOT-operaattoria (!) käytetään yhdistämällä se esimerkiksi == -operaattoriin.

Kirjoita teksti tähän.

<?php $luku = 100; if ($luku !== 90) { echo "Luku ei ole yhtäsuuri kuin 90."; } ?>


Luku ei ole yhtäsuuri kuin 90.


Tehtävä 3 Tähän tulee myöhemmin tehtävä 5.


Takaisin oppaaseen

MERKKIJONO-OPERAATTORIT

Merkkijonoja voidaan yhdistää www-sivulle näytettäessä sekä yhdistää muuttujassa oleva teksti toisessa muuttujassa olevaan.

Kirjoita teksti tähän.

/* Merkkijonot */ <?php $teksti1 = "Tämä teksti "; $teksti2 = "liitettiin tämän eteen."; $tekstiA = "Punainen "; $tekstiB = "paroni."; echo $teksti1 . $teksti2 . "<br>"; $tekstiA .= $tekstiB; echo $tekstiA; ?>


Tämä teksti liitettiin tämän eteen.
Punainen paroni.


Tehtävä 6 Tehtävä kirjoitetaan tähän myöhemmin.


Takaisin oppaaseen

OSOITIN-OPERAATTORIT

Osoitin operaattoreilla operoidaan taulukoiden ja niiden sisältöjen parissa.

Kahden taulukon yhdistäminen
Esimerkissä yhdistetään taulu1- ja taulu2 avaimet eli solujen nimet mutta ei taulukkojen varsinaista sisältöä. Lopputuloksena soluA, soluB, soluC ja soluD ovat avaimia eli taulukoiden solunimiä joiden avulla päästään käsiksi taulukoiden varsinaiseen sisältöön.

print_r($taulu1 + $taulu2); yhdistää kahden taulukon solujen nimet.

<?php $taulu1 = array("soluA" => "Antti", "soluB" => "Eemeli"); $taulu2 = array("soluC" => "Heikki", "soluD" => "Jussi"); print_r($taulu1 + $taulu2); echo "<br>Solussa soluA on sisältönä " . $taulu1['soluA']; echo "<br>Solussa soluD on sisältönä " . $taulu2['soluD']; ?>


Array ( [soluA] => Antti [soluB] => Eemeli [soluC] => Heikki [soluD] => Jussi )
Solussa soluA on sisältönä Antti
Solussa soluD on sisältönä Jussi


Tehtävä 7 Tähän tulee myöhemmin tehtävä 7.


Takaisin oppaaseen

Samanarvoiset taulukot
Toisinaan on tarpeen tutkia onko kaksi taulukkoa samanlaisia. Jotta kaksi erinimistä taulukkoa ovat samanlaisia, on niiden solujen nimet sekä sisältö oltava samanlaiset. Samanlaisuutta tutkitaan var_dump($tauluA == $tauluB);-funktiossa.

Esimerkissä on kolme erinimistä taulukkoa, kaksi taulukoista on samanlaisia.

/* Samanlaisten taulukoiden tutkiminen */ <?php $tauluA = array("SoluA" => "Opel", "SoluB" => "BMW"); $tauluB = array("SoluC" => "Audi", "SoluD" => "Volvo"); $tauluC = array("SoluA" => "Opel", "SoluB" => "BMW"); var_dump($tauluA == $tauluB); var_dump($tauluA == $tauluC); ?>


bool(false) bool(true)


Tehtävä 8 Tehtävä kirjoitetaan tähän myöhemmin.


Takaisin oppaaseen

Erilaiset taulukot
Erisuuruutta tutkimalla voidaan selvittää onko kahden taulukon välillä eroa.

<?php $tauluA = array("SoluA" => "Opel", "SoluB" => "BMW"); $tauluB = array("SoluC" => "Audi", "SoluD" => "Volvo"); $tauluC = array("SoluA" => "Citroen", "SoluB" => "BMW"); $tauluD = array("SoluE" => "Opel", "SoluF" => "BMW"); var_dump($tauluA != $tauluB); var_dump($tauluA != $tauluC); var_dump($tauluA != $tauluD); ?><


bool(true) bool(true) bool(true)


Tehtävä 9 Tähän tulee myöhemmin tehtävä 9.


Takaisin oppaaseen