PHP - Operaattorit

Operaattorit

Operaattoreilla 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 numero -muuttuja jonne sijoitetaan numeroarvo 21. Seuraavaksi määritellään luku -muuttuja jonne sijoitetaan numero-muuttujassa oleva tieto eli numero 21.


Aritmeettiset-operaattori

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

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

1. Esimerkki. Muuttujiin sijoitetaan numeroarvot, lasketaan muuttujat (muuttujissa olevat numerot) yhteen ja näytetään www-sivulle tulos.


  <!DOCTYPE html>
  <html>
   <head>
    <meta charset="UTF-8">
    <style>
	 .vari2{
	   color: Maroon;
     }
	</style>
   </head>

   <body>
    <div class="vari2">
    <?php
      $luku1 = 10; 
      $luku2 = 6; 

      echo $luku1 + $luku2;
    ?> 
    </div>
   </body>
  </html>
  

Tulos www-sivulla:

5
10


Tehtävä 13

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


Taulukossa lyhyemmät tavat kirjoittaa aritmeettisia-operaattoreita.

Lyhyt tapa Vastaava Käyttäminen echo:ssa
$luku1 += $luku2; $luku1 = $luku1 + $luku2; echo $luku1 + $luku2;
$luku1 -= $luku2; $luku1 = $luku1 - $luku2; echo $luku1 - $luku2;
$luku1 *= $luku2; $luku1 = $luku1 * $luku2; echo $luku1 * $luku2;
$luku1 /= $luku2; $luku1 = $luku1 / $luku2; echo $luku1 / $luku2;
$luku1 %= $luku2; $luku1 = $luku1 % $luku2; echo $luku1 % $luku2;

Vertailu-operaattorit

Vertailu-operaattorit vertaavat kahta arvoa keskenään. Vertailu-operaattoreita 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 Toistot.

Operaattori Selite Esimerkki
== Yhtäsuuri Katso esimerkit täältä
=== Identtinen, yhtäsuuri ja saman tyyppinen
!= Erisuuri
<> Erisuuri
!== Ei identtinen,
> Suurempi kuin
< Pienempi kuin
>= Suurempi tai yhtäsuuri
<= Pienempi tai yhtäsuuri
<=> Vertailu, pienempi-yhtäsuuri-suurempi

2. Esimerkki. Vertaillaan var_dump()-funktion avulla onko luku1 ja luku2 -muuttujat yhtäsuuria:


 <div class="vari2">
 <?php
   $luku1 = 100; 
   $luku2 = "100";

   var_dump($luku1 == $luku2);
 ?>
 </div>
 

Tulos www-sivulla:

bool(true)


Unaariset-operaattorit, vähentäminen/kasvattaminen

Unaariset-operaattorit tarkoittavat muuttujan arvon kasvattamista numerolla 1 tai vähentämistä numerolla 1. Unaariset-operaattorit ovat inkrementointi- (lisäys) ja dekrementointioperaattorit (vähennys). Unaarisia-operaattoreita käytetään usein toisto-rakenteissa, esimerkiksi for-toistolauseissa.

$luku_A = 0;
++$luku_A;
$luku_A++;
--$luku_A;
$luku_A--;


Esimerkiksi ++$luku_A; tarkoittaa samaa kuin $luku_A = $luku_A + 1;



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

3. Esimerkki. Muuttuja luku1 alustetaan numerolla 1 jonka jälkeen muuttujan arvo muutetaan unaarisilla-operaattoreilla:


 <div class="vari2">
 <?php
  $luku1 = 1;
  
  echo $luku1++ . "<br>"; 
  echo $luku1 . "<br>"; 
  echo --$luku1;
 ?>
 </div>
 

Tulos www-sivulla:

1
2
1


Tehtävä 14

Toteuta käyttäen unaarisia-operaattoreita:

- tulosta luvusta 10 luku 9
- ja luvusta 9 luku 10.


Loogiset-operaattorit

Ohjelmoinnissa loogiset-operaatiot toimivat samalla periaatteella kuin elektroniikan puolella tai arkisissa päätöksien tekemisissä. Ohjelmoinnissa 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

Koodaus, jossa && -merkit tarkoittava JA-sanaa:

if (tulos > 10 && tulos < 20)


PHP:n loogiset-operaattorit:

Operaattori Selite (eng) Selite Esimerkki
AND and JA, totta vain jos molemmat ehdot on tosia AND ja OR esimerkit
OR or TAI, jos jompikumpi ehto tai molemmat on tosia
XOR xor Totta jos jompikumpi ehto on tosi, mutta ei kummatkin samaan aikaanXOR esimerkki
&& and JA, totta vain jos molemmat ehdot on tosia
|| or TAI, jos jompikumpi ehto tai molemmat on tosia
! NOT Tosi jos tutkittava ei ole totta NOT 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.

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


 <div class="vari2">
 <?php
  $luku1 = 100; 
  $luku2 = 50;

  if ($luku1 == 100 AND $luku2 == 50) {
    echo "Hyvää päivää!";
  }
 ?>
 </div>
 

Tulos www-sivulla:

Hyvää päivää!


Tehtävä 15

Muuta yllä oleva esimerkki toteuttamaan seuraavan.

Muuttujat:
  luku1 = 50 ja luku2 = 100.

Toteutettava ehtorakenne:
  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

Merkkijono-operaattorit

Merkkijono-operaattoreilla yhdistetään merkkijonoja, esimerkiksi yhditetään muuttujissa olevia tekstejä echo:lla näytettävään tekstiin.

Merkkijono-operaattorit:

Operaattori Selite (eng) Selite Esimerkki
. liittää Liittää esitettäessä www-sivulle tietoa, esimerkiksi tekstejä muuttujista Molemmista esimerkit
.= sijoittaa ja liittää Sijoittaa muuttujassa olevaan tietoon toisessa muuttujassa olevan tiedon

5.Esimerkki. Muuttujissa olevan tiedon liittäminen:


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

Tulos www-sivulla:

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


Tehtävä 16

Määrittele neljä muuttujaa:

otsikko1
otsikko2
teksti1
teksti2
kokoteksti

Etsi internetistä kaksi kappaleen mittaista tekstiä sekä sijoita tekstit teksti1- ja teksti2-muuttujiin.
Keksi teksteihin liittyvät otsikot ja sijoita otsikot muuttujiin otsikko1 ja otsikko2.
Käytä otsikoissa h3-elementtiä, teksteissä p-elementtiä.

Yhdistä otsikot ja tekstit kokoteksti-muuttujaan.
Näytä kokoteksti-muuttuja yhdellä echo:lla.


Osoitin-operaattorit

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

Operaattori Selite (eng) 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, tulostuu true eli tosi Esimerkki
<> Jos taulukoiden $taulu1 ja $taulu2 samanlaisia, tulostuu true eli tosi Katso edellinen esimerkki
!== Jos taulukoiden $taulu1 ja $taulu2 identtisiä, tuostuu true eli tosi Katso edellinen esimerkki