php.jpgJohdatus PHP-kieleen

Sisällysluettelo

JohdantoSyntaksiTietotyypitMuuttujatOperaattoritKontrollirakenteetTaulukotFunktiotLomakkeetTietokantaEvästeetSessiot

www.php.net

Funktiot

Yleistä funktioista ylös

Funktiot määritellään PHP:ssä seuraavasti:

function nimi(parametri 1, parametri 2 ...){toteutus}

Funktioille ei siis määritellä palautusarvolle tai parametreille tietotyyppiä, kuten Javan metodeissa ja C-kielen funktioissa tehdään. Funktiot voidaan kirjoittaa mihin kohtaan koodia tahansa. Niitä ei ole siis välttämätöntä kirjoittaa koodiin ennen käyttöä.

Parametrien välitys ylös

Parametrit välitetään PHP:n funktioissa arvoperusteisesti eli parametrina annetun muuttujan arvo kopioidaan funktiossa määriteltyyn lokaaliin muuttujaan. Seuraava esimerkki selventää tätä.

<?php
  function MuutaArvoa($arvo){
    $arvo = "Muutettu";
  } 
  
  $a = "Alkuperäinen";
  MuutaArvoa($a);
  echo $a; //Tulostaa: Alkuperäinen
?>

Esimerkistä nähdään, että funktiossa muutettu muuttujan arvo vaikuttaa ainoastaan funktion sisällä. Muutos ei vaikuta alkuperäiseen parametrina annettuun muuttujaan ($a). Jos funktion halutaan oikeasti muuttavan parametrina annetun muuttujan arvoa, voidaan parametri määrittää viitemuuttujaksi alla olevan esimerkin mukaisesti.

<?php
  function MuutaArvoa(&$arvo){
    $arvo = "Muutettu";
  } 
  
  $a = "Alkuperäinen";
  MuutaArvoa($a);
  echo $a; //Tulostaa: Muutettu
?>

Esimerkki on samanlainen kuin edellinen sillä poikkeuksella, että funktion parametri on määritelty viitemuuttujaksi. Viitemuuttuja ilmaistaan &-merkillä esimerkin mukaisesti. Viitemuuttujan käytöllä saadaan nyt funktio muuttamaan alkuperäisen muuttujan ($a) arvoa.

Parametrien oletusarvon käyttö ylös

Funktion parametreille voidaan määrittää oletusarvot, joita käytetään, mikäli käyttäjä ei niitä anna. Alla on esimerkki tästä:

<?php
  function kuution_tilavuus($a, $b=10, $c=10){
    return $a*$b*$c;
  } 
  
  echo kuution_tilavuus(10)."<br />\n"; //Tulostaa: 1000
  echo kuution_tilavuus(10, 5)."<br />\n"; //Tulostaa: 500
  echo kuution_tilavuus(10, 5, 3)."<br />\n"; Tulostaa: 150
?>

Esimerkissä on annettu parametreille $b ja $c on annettu oletusarvo 10. Sitä käytetään, mikäli funktion kutsussa ei parametreja anneta. Tästä on hyvä huomata, että on mahdotonta antaa funktiolle parametreina esimerkiksi $a ja $c. Parametrit luetaan aina määrittelyjärjestyksessä. Jos annetaan yksi parametri, se on aina $a, ja kaksi parametria ovat aina $a ja $b.