OPERAATTORIT

Operaattorit ovat sanoja tai symboleja, joilla saadaan lausekkeet sekä muuttujat tekemään jokin määrätty tehtävä tai tehtäviä. PHP:ssä käytettäviä operaattoreita ovat esimerkiksi seuraavat; sijoitus-, aritmeettiset-, vertailu-, unaarisiset- ja loogiset-operaattorit.


SIJOITUS-OPERAATTORI

Sijoituslauseet, joissa käytetään sijoitusoperaattorina = -merkkiä kirjoitetaan muodossa:

$tunniste = ilmaus;

Esimerkkejä:

$numero = 21; $luku = numero;

Esimerkissä (yllä), määritellään aluksi muuttuja numero jonne sijoitetaan numeroarvo 21. Seuraavaksi määritellään muuttuja luku jonne sijoitetaan numero-muuttujassa oleva tieto eli numero 21.


ARITMEETTISET-OPERAATTORIT

PHP-kielessä on käytössä viisi aritmeettista operaattoria:

Merkki Selite Esimerkki
+ Yhteenlasku Katso esimerkit täältä
- Vähennyslasku
* Kertolasku
/ Jakolasku
% Jakojäännös, vain kokonaisluvuille


Esimerkissä (alla), muuttujiin sijoitetaan numeroarvot, lasketaan muuttujat (muuttujissa olevat numerot) yhteen ja näytetään www-sivulle tulos.

/* Aritmeettiset-operaatiot */ <!DOCTYPE HTML> <html lang="en"> <html> <head> <meta charset="UTF-8"> <title>TESTISIVU</title> </head> <body> <?php $luku1 = 10; $luku2 = 6; echo $luku1 + $luku2; ?> </body> </html> Sjöman

16

Tehtävä 1 Kirjoita PHP-koodi joka laskee sade-muuttujaan sijoitetun arvon avulla ympyrän kehän mitan, pinta-alan sekä pallon tilavuuden.




VERTAILU-OPERAATTORIT

Vertailuoperaattorit vertaavat kahta arvoa keskenään. Vertailuoperaattoreita käytetään esimerkiksi valintoja tekevissä rakenteissa sekä toistorakenteissa. Esimerkiksi; onko luku suurempi kuin 100 tai onko luku1 suurempi tai yhtäsuuri kuin luku2. Lisää vertailuoperaattoreista oppaan kohdissa Valinnat ja Toistaminen.

C-kielen vertailuoperaattorit:

Merkki Selite Esimerkki
< Pienempi kuin Katso kaikki esimerkit täältä
> Suurempi kuin
<> Erisuuri kuin
>= Suurempi tai yhtäsuuri kuin
<= Pienempi tai yhtäsuuri kuin
!= Erisuuri kuin
!== Ei ole identtinen
== Yhtäsuuri kuin
=== Identtinen


Esimerkkiohjelmassa (alla), vertaillaan var_dump()-funtiolla onko luku1 ja luku2 -muuttujat yhtäsuuria.

/* vertailuoperaattorit */ <?php $luku1 = 100; $luku2 = "100"; var_dump($luku1 == $luku2); ?>


bool(true)




UNAARISET-OPERAATTORIT
(muuttujan arvon kasvatus tai vähennys)

Unaariset-operaattorit tarkoittavat muuttujan arvon kasvattamista numerolla 1 tai vähentämistä numerolla 1. Unaariset-operaattorit ovat inkrementointi- (lisäys) ja dekrementointioperaattorit (vähennys). Esim.

$luku_A = 0; $luku_A = 0; ++$luku_A; /* vastaa $luku_A = $luku_A + 1; */ $luku_A++; --$luku_A; /* vastaa $luku_A = $luku_A - 1; */ $luku_A--;

Operaattorin ollessa ennen operandia, operandin arvo muuttuu ennen operandin käsittelyä komentolauseessa. Mikäli operaattori on operandin jälkeen, operandin arvoa muutetaan sen jälkeen, kun operandin suhteen on suoritettu komentolauseen mukaiset toimenpiteet. Unaarisia-operaattoreita käytetään usein toistolauseissa, esimerkiksi for-toistolauseessa.

Merkintä Selite
$luku++ Lisää muttujan $luku arvoa yhdellä, muuttujan käytön jälkeen
++$luku Lisää muttujan $luku arvoa yhdellä, ennen muuttujan käyttöä
$luku–- Vähentää muttujan $luku arvoa yhdellä, muuttujan käytön jälkeen
–-$luku Vähentää muttujan $luku arvoa yhdellä, ennen muuttujan käyttöä


/* vähennysoperaattorin käyttö */ <?php $luku1 = 1; echo $luku1++ . "<br>"; echo $luku1 . "<br>"; echo --$luku1; ?>


1
2
1


Tehtävä 2 Tee seuraava laskutoimitus käyttäen unaarisia-operaattoreja: Tulosta luvusta 10 luku 9 ja luvusta 9 luku 10.



Unaarisia-operaattoreita käytetään usein toistolauseissa, esimerkiksi for-lauseessa.


LOOGISET-OPERAATTORIT

Ohjelmoinnissa loogiset-operaatiot toimivat samalla periaatteella kuin elektroniikan puolella. Esimerkiksi, tutkitaan kahden muuttujan arvoa joiden perusteella ratkaistaan tehdäänkö seuraava komento.

Loogisia-operaattoreita käytetään esimerkiksi if ja for-lauseiden yhteydessä testatessa erilaisia ehtoja.

Esimerkki.

Jos tulos on suurempi kuin 10 JA tulos on pienempi kuin 20:

if (tulos > 10 && tulos < 20)

PHP:n loogiset operaattorit:

Merkki Selite (eng)Selite Esimerkki
and AND JA, totta vain jos molemmat ehdot on tosia Esimerkki
or OR TAI, jos jompikumpi ehto tai molemmat on tosia Esimerkki
xor XOR Totta jos jompikumpi ehto on tosi, mutta ei kummatkin Esimerkki
&& AND JA, totta vain jos molemmat ehdot on tosia
|| OR TAI, jos jompikumpi ehto tai molemmat on tosia
! NOT Totta jos $luku ei ole totta Esimerkki


Operaattorin ollessa ennen operandia, operandin arvo muuttuu ennen operandin käsittelyä komentolauseessa. Mikäli operaattori on operandin jälkeen, operandin arvoa muutetaan sen jälkeen, kun operandin suhteen on suoritettu komentolauseen mukaiset toimenpiteet.

Esimerkki. Jos luku1 on yhtäsuuri kuin 100 JA luku2 on yhtäsuuri kuin 50, tulostuu www-sivulle Hyvää päivää!-teksti.

/* loogisten operaattorien käyttö */ <?php $luku1 = 100; $luku2 = 50; if ($luku1 == 100 and $luku2 == 50) { echo "Hyvää päivää!"; } ?>


Hyvää päivää!


Tehtävä 3 Muuta yllä oleva esimerkki toteuttamaan seuraavan: Luku1 on 50 ja luku2 on 100. Jos luku1 on suurempi tai yhtäsuuri kuin 50 ja pienempi kuin 100, tulostuu teksti Luku 1 on 50 tai pienempi kuin 100. Jos luku2 on suurempi kuin 100, tulostuu teksti Luku2 on suurempi kuin 100.




SUORITUSJÄRJESTYS

Operaattoreilla on suoritusjärjestys. Operaattorit, joilla on korkein suoritusoikeus ovat listan alussa. Alhaisemman suoritusoikeuden omaavat operaattorit ovat listassa alempana. Sitovuus määrää laskemissuunnan. Esim. sijoitusoperaattorin (=) suhteen sitovuus oikealta vasemmalle tarkoittaa sitä, että oikealla oleva lauseke sijoitetaan vasemmalla olevaan muuttujaan.
(HUOM !! 24.3.2016 !
Suoritusjärjestys taulukossa on C-kielen, PHP:n osalta asia on tarkistamatta)


Operaattorien suoritusjärjestys:

Operaattorityyppi Operaattori Sitovuus
Unaarinen --, ++ ov
Looginen NOT ! ov
Kertominen, jakaminen *, /, % vo
Yhteen-, vähennyslasku +, - vo
Vertailu <, <=, >, >= vo
Vertailu = =, != vo
Looginen AND && vo
Looginen OR || vo
Sijoitus = ov


Sulkumerkeillä voidaan operaattorien suoritusjärjestystä muuttaa !

MERKKIJONO-OPERAATTORIT

Merkkijono-operaattoreilla yhdistetään merkkijonoja näytettäessä niitä www-sivulle.


Merkki Selite Esimerkki
. $txt1 ja $txt2 yhteenliittäminen Esimerkki
.= Liittää $txt2 $txt1:seen



OSOITIN-OPERAATTORIT

Osoitin-operaattoreilla operoidaan taulukkoja sekä tutkitaan niiden sisältöjä.

Merkki Selite Esimerkki
+ Yhdistää kahden taulukon sisällön yhdeksi Esimerkki
== Jos taulukoiden $taulu1 ja $taulu2 arvot sekä solujen nimet ovat samanlaiset, tulostuu true eli tosi Esimerkki
=== Jos taulukoiden $taulu1 ja $taulu2 arvot, solujen nimet ovat samanlaiset, samassa jäjestyksessä sekä samanyyppiset, tulostuu true eli tosi Katso edellinen esimerkki
!= Jos taulukoiden $taulu1 ja $taulu2 samanlaisia, tuostuu true eli tosi Esimerkki
<> Jos taulukoiden $taulu1 ja $taulu2 samanlaisia, tuostuu true eli tosi Katso edellinen esimerkki
!== Jos taulukoiden $taulu1 ja $taulu2 identtisiä, tuostuu true eli tosiKatso edellinen esimerkki