E N D
Funktiot • Funktiot voidaan jakaa • Kirjastofunktioihin, jotka ovat valmiina kaikkien käytössä. Erikoisempien kirjastofunktioiden käyttöönotto voi vaatia PHP:n asennusvaiheessa joitakin toimenpiteitä, vaikkapa tuki MySQL-tietokantapalvelinta varten. Tällöin ohjelmoija voi käyttää kyseistä tietokantaa tietyllä kokoelmalla kirjastofunktioita. • Käyttäjän määrittelemiin funktioihin, joita jokainen ohjelmoija voi kirjoittaa omaan käyttöönsä. tMyn
Funktion nimitys tulee siitä, että se palauttaa aina jonkin arvon. • PHP:ssä arvo palautetaan return-lauseella, joka ei ole pakollinen. • Jos return-lausetta ei käytetä, funktio palauttaa arvon NULL. tMyn
Funktio esitellään seuraavan syntaksin mukaan: function funktionNimi($muodollinenParametri1, muodollinenParametri2, …) { echo ”Esimerkki funktiosta <br>”; return $paluuarvo; } tMyn
Funktion tyyppi määräytyy automaattisesti paluuarvon tyypin mukaan. • Funktio saa syötteensä parametrien (kutsutaan myös argumenteiksi kutsun yhteydessä) välityksellä. • Jos parametreja ei ole, merkitään pelkät sulkeet. • Määriteltyä funktiota kutsutaan (käytetään) funktion nimellä välitettävine parametreineen: … funktionNimi($todellinenParametri1, $todellinenParametri2, …); … tMyn
Funktion kutsussa käytettäviä parametreja kutsutaan todellisiksi parametreiksi ja esittelyssä käytettäviä muodollisiksi parametreiksi. • Kutsun yhteydessä todellisten parametrien arvot kopioidaan muodollisille parametreille. • Funktion sisällä muutetut arvot eivät siis välity kutsuvaan ohjelmanosaan. tMyn
PHP:ssä on kaksi miltei identtistä funktiota, joilla voidaan sisällyttää osa koodia toisen ohjelman osaksi, funktiot require() ja include(). • Olkoot tiedostot uudelleenMukaan.php ja isoKokonaisuus.php (samassa projektissa): tMyn
Parametrin välittäminen viittauksena • Funktion todellisten parametrien viittaukset voidaan välittää muodollisille parametreille. • Tällöin funktion sisällä käsitellään olennaisesti samojen muistipaikkojen sisältöä, mihin todellisetkin parametrit viittaavat. • Näin tehdyt muutokset näkyvät kutsuvassa ohjelmalohkossa. • Parametri määritellään viittaukseksi funktion esittelyssä. • Merkintä tapahtuu lisäämällä &-merkki muuttujan nimen eteen. tMyn
Parametrien oletusarvot • Funktion esittelyssä parametreille on mahdollista välittää myös oletusarvot. • Mikäli kaikille muodollisille parametreille ei anneta oletusarvoja, niin silloin oletusarvojen antaminen on aloitettava oikeasta kulmasta, eikä parametreja saa jättää ”väliin”. • Oletusarvon on oltava vakiolauseke. tMyn
Staattiset muuttujat • Staattiset muuttujat ovat funktioiden sisällä määriteltyjä lokaaleja muuttujia, jotka säilyttävät arvonsa koko ohjelman suorituksen ajan. • Näin määriteltyjen muuttujien arvot säilyvät funktion kutsukerrasta toiseen. • Staattinen muuttuja määritellään static-avainsanalla, ja samalla muuttujalle voidaan sijoittaa arvo. • Tämä sijoitus suoritetaan ainoastaan ensimmäisellä kutsukerralla: static $laskuri=0; tMyn
Seuraavassa esimerkissä nähdään, kuinka funktiossa huonoLaskuri() käytetty tavallinen lokaali muuttuja $eiToimi ei säilytä arvoaan kutsukerrasta toiseen. • Funktiossa hyvaLaskuri() määritelty staattinen muuttuja static $toimii säilyttää arvonsa. • Funktio isset() palauttaa TRUE, jos parametrina annettu muuttuja on asetettu, eli sille on jo annettu jokin kelvollinen alustusarvo – ei kuitenkaan käytetä sitä nyt seuraavassa esimerkissä: tMyn
Funktion paluuarvon käyttäminen • Useassa tapauksessa kutsutun funktion halutaan palauttavan jonkin hyödyllisen arvon kutsuvaan osaan. • Hyödyllisyys tarkoittaa sitä, että kutsuva osa käyttää paluuarvoa johonkin ”jatkojalostukseen”. Siis pelkästään paluuarvon kaiuttaminen näytölle kutsuvasta osasta ei taida olla riittävä syy palauttaa arvo pääohjelmaan!! • Palauttaminen tapahtuu return-komennolla joka siis samalla päättää funktion ja palauttaa ohjauksen kutsuvaan osaan. tMyn
Tässä ei vielä palauteta mitään kutsuvaan ohjelmanosaan: tMyn
Seuraavassa esimerkissä funktio palauttaa jonkin arvon kutsuvaan osaan, vaikka ei sitä palautettua arvoa sitten käytetä mihinkään sen järkevämpään: tMyn
Riittävä syy palauttaa jotakin funktiosta kutsuvaan osaan on paluuarvon käyttäminen johonkin ”jatkojalostukseen”, siis vaikkapa: tMyn