35
1 Ville Seppänen ([email protected]) PHP osa 1 PHP osa 1 Verkkotekniikan Verkkotekniikan jatkokurssi jatkokurssi Kevät 2003 Kevät 2003 Ville Seppänen Ville Seppänen ([email protected]) ([email protected])

PHP osa 1

  • Upload
    feo

  • View
    34

  • Download
    0

Embed Size (px)

DESCRIPTION

PHP osa 1. Verkkotekniikan jatkokurssi Kevät 2003 Ville Seppänen ([email protected]). Sisältö. Yleistä Skriptien kirjoittaminen Muuttujista Operaattoreista Funktioiden määrittely ja käyttäminen include ja require Kontrollirakenteista Taulukoista. PHP:n käyttötilasto helmikuu 03. - PowerPoint PPT Presentation

Citation preview

Page 1: PHP osa 1

1Ville Seppänen ([email protected])

PHP osa 1PHP osa 1

Verkkotekniikan jatkokurssiVerkkotekniikan jatkokurssi

Kevät 2003Kevät 2003

Ville Seppänen ([email protected])Ville Seppänen ([email protected])

Page 2: PHP osa 1

2Ville Seppänen ([email protected])

SisältöSisältö

1.1. YleistäYleistä

2.2. Skriptien kirjoittaminenSkriptien kirjoittaminen

3.3. MuuttujistaMuuttujista

4.4. OperaattoreistaOperaattoreista

5.5. Funktioiden määrittely ja käyttäminenFunktioiden määrittely ja käyttäminen

6.6. include ja requireinclude ja require

7.7. KontrollirakenteistaKontrollirakenteista

8.8. TaulukoistaTaulukoista

Page 3: PHP osa 1

3Ville Seppänen ([email protected])

PHP:n käyttötilasto helmikuu 03PHP:n käyttötilasto helmikuu 03

Page 4: PHP osa 1

4Ville Seppänen ([email protected])

Yleistä (1)Yleistä (1)

• Alkoi 1994 yhden miehen, Rasmus Alkoi 1994 yhden miehen, Rasmus Lerdorfin, projektina Lerdorfin, projektina PPersonal ersonal HHome ome PPageage

• Nykyisin useita kehittäjiä, vapaa Open Nykyisin useita kehittäjiä, vapaa Open Source projekti, nimi muuttunut muotoon Source projekti, nimi muuttunut muotoon PPHP HP HHypertext ypertext PPreprocessorreprocessor

• Viimeisin versio 4.3.1 (Viimeisin versio 4.3.1 (www.php.netwww.php.net))• Kehityksessä oleva versio 5 tulee Kehityksessä oleva versio 5 tulee

muuttamaan PHP:n enemmän oliokielen muuttamaan PHP:n enemmän oliokielen suuntaansuuntaan

Page 5: PHP osa 1

5Ville Seppänen ([email protected])

Yleistä (2)Yleistä (2)

• ‘‘Serverside HTML-embedded scripting language’Serverside HTML-embedded scripting language’• PHP-skripti kirjoitetaan tavallisesti HTML-koodin sekaanPHP-skripti kirjoitetaan tavallisesti HTML-koodin sekaan• Asiakkaan pyytäessä skriptiä sisältävää dokumenttia Asiakkaan pyytäessä skriptiä sisältävää dokumenttia

palvelimelta, palvelin suorittaa dokumenttiin upotetun palvelimelta, palvelin suorittaa dokumenttiin upotetun koodinkoodin

• ja (tavallisesti) palauttaa vastauksena staattisen HTML-ja (tavallisesti) palauttaa vastauksena staattisen HTML-dokumentindokumentin

• HTTP ja HTML asettavat tiettyjä rajoituksia HTTP ja HTML asettavat tiettyjä rajoituksia

• Suunniteltu web-käytöönSuunniteltu web-käytöön• Paljon valmiita funktioita yleisiin käyttötarkoituksiin; Paljon valmiita funktioita yleisiin käyttötarkoituksiin;

esim. grafiikan ja PDF-dokumenttien generointi, esim. grafiikan ja PDF-dokumenttien generointi, sähköpostin lähettäminen, cookieiden käsittely, yhteydet sähköpostin lähettäminen, cookieiden käsittely, yhteydet muihin verkkopalveluihin ja erilaisiin tietokantoihin jne.muihin verkkopalveluihin ja erilaisiin tietokantoihin jne.

Page 6: PHP osa 1

6Ville Seppänen ([email protected])

Yleistä (3)Yleistä (3)

• Syntaksi perustuu muihin ohjelmointikieliin, Syntaksi perustuu muihin ohjelmointikieliin, pääasiassa C:hen ja Perliin. Piirteitä myös pääasiassa C:hen ja Perliin. Piirteitä myös C++:sta ja Javasta. Mahdollista kirjoittaa C++:sta ja Javasta. Mahdollista kirjoittaa oliotyyliin.oliotyyliin.

• Siirrettävää: koodi toimii ilman muutoksia tai Siirrettävää: koodi toimii ilman muutoksia tai pienin muutoksin (hakemistoviittaukset jne.) pienin muutoksin (hakemistoviittaukset jne.) erilaisilla alustoilla (vapaat ja kaupalliset erilaisilla alustoilla (vapaat ja kaupalliset Unixit, Windowsit jne.) sekä lukuisissa Unixit, Windowsit jne.) sekä lukuisissa WWW-palvelimissa laajennusmodulien WWW-palvelimissa laajennusmodulien avulla, esim. Apache ja MS IISavulla, esim. Apache ja MS IIS

Page 7: PHP osa 1

7Ville Seppänen ([email protected])

Yleistä (4)Yleistä (4)

• Verrattaessa ‘kilpailijoihinsa’ (esim. Perl, ASP, Verrattaessa ‘kilpailijoihinsa’ (esim. Perl, ASP, JSP, Cold Fusion) PHP:n vahvuuksia ovat:JSP, Cold Fusion) PHP:n vahvuuksia ovat:• SuorituskykySuorituskyky• Liittymä useille tietokannoilleLiittymä useille tietokannoille• Sisäänrakennetut kirjastot yleisille web-sovelluksiin Sisäänrakennetut kirjastot yleisille web-sovelluksiin

liittyville tehtävilleliittyville tehtäville• Edullinen (Edullinen ( ilmainen) ilmainen)• Helppo oppia ja käyttääHelppo oppia ja käyttää• SiirrettävyysSiirrettävyys• Lähdekoodin saatavuusLähdekoodin saatavuus

(Welling & Thomson, 2001) (Welling & Thomson, 2001)• Koodin pituus PHP:lla toteutettuna on tyypillisesti vain Koodin pituus PHP:lla toteutettuna on tyypillisesti vain

murto-osan esim. vastaavasta Perl-koodistamurto-osan esim. vastaavasta Perl-koodista

Page 8: PHP osa 1

8Ville Seppänen ([email protected])

Skriptin kirjoittaminen (1)Skriptin kirjoittaminen (1)

• Palvelin tunnistaa PHP-skriptiä sisältävät Palvelin tunnistaa PHP-skriptiä sisältävät tiedostot tiedostonimen päätteen tiedostot tiedostonimen päätteen perusteella, yleensä .php, .php3, .php4 perusteella, yleensä .php, .php3, .php4 tai .phtml (hyväksytyt päätteet riippuvat tai .phtml (hyväksytyt päätteet riippuvat palvelimen asetuksista)palvelimen asetuksista)

• PHP-skriptit kirjoitetaan <? ?> tai <?php ?> PHP-skriptit kirjoitetaan <? ?> tai <?php ?> merkkiparien sisälle (suosi jälkimmäistä merkkiparien sisälle (suosi jälkimmäistä muotoa)muotoa)

Page 9: PHP osa 1

9Ville Seppänen ([email protected])

Skriptin kirjoittaminen (2)Skriptin kirjoittaminen (2)

<html><html>

<head><head>

<title>Päiväys<title><title>Päiväys<title>

</head></head>

<body><body>

<p><p>

<?php // PHP-koodi alkaa<?php // PHP-koodi alkaa

echo “Tänään on: “;echo “Tänään on: “;

echo time(“d-m-Y”);echo time(“d-m-Y”);

?> // PHP-koodi loppuu?> // PHP-koodi loppuu

</p></p>

</body></body>

</html></html>

Page 10: PHP osa 1

10Ville Seppänen ([email protected])

Skriptin kirjoittaminen (3)Skriptin kirjoittaminen (3)

<?php

$myString = ‘Hello, world!’;

?>

<h1>

<?php

echo $myString;

?>

</h1>

<?php$myString = ‘Hello, world!’;echo “<h1>$myString</h1>”;?>

<?php$myString = ‘Hello, world!’;echo “<h1>”.$myString.”</h1>”;?>

<?phpecho “<h1 class=\”iso\”>Iso otsikko</h1>”;echo “<h1 class=‘iso’>Toinen iso otsikko</h1>”;?>

<for method=“get” action=“<?php echo $PHP_SELF ?>”>

Page 11: PHP osa 1

11Ville Seppänen ([email protected])

Skriptien kirjoittaminen (4)Skriptien kirjoittaminen (4)

• PHP-sovellus voidaan kirjoittaa PHP-sovellus voidaan kirjoittaa kokonaisuudessaan yhteen tiedostoon tai se kokonaisuudessaan yhteen tiedostoon tai se voidaan pilkkoa loogisesti erillisiin skripteihinvoidaan pilkkoa loogisesti erillisiin skripteihinif($page==‘kirjoita’) {

/* kirjoittamiseen liittyviä

juttuja */

}

else if($page==‘lue’) {

/* lukemiseen liittyviä

juttuja */

}

else {

/* jotain muuta */

}

index.php

lue.phpkirjoita.php

Page 12: PHP osa 1

12Ville Seppänen ([email protected])

Muuttujista (1)Muuttujista (1)

• PHP:ssa muuttujia ei tarvitse julistaa. PHP:ssa muuttujia ei tarvitse julistaa. Muuttuja luodaan, kun sille asetetaan arvo, Muuttuja luodaan, kun sille asetetaan arvo, ja muuttujan tyyppi määräytyy ja muuttujan tyyppi määräytyy automaattisesti arvon tyypin mukaanautomaattisesti arvon tyypin mukaan

$myInterger = 1;$myInterger = 1;

$myString = “Hello, world!”;$myString = “Hello, world!”;

$myArray = array(“Hello”, “world!”);$myArray = array(“Hello”, “world!”);

echo gettype($myInteger); // integerecho gettype($myInteger); // integer

echo gettype($myString); // stringecho gettype($myString); // string

echo gettype($myArray); // stringecho gettype($myArray); // string

Page 13: PHP osa 1

13Ville Seppänen ([email protected])

Muuttujista (3)Muuttujista (3)

• Muuttujien arvoja voidaan välittää skripteille Muuttujien arvoja voidaan välittää skripteille GET tai POST-kutsujen mukanaGET tai POST-kutsujen mukana• Muuttujien siirtäminen URLissa (GET-metodi)Muuttujien siirtäminen URLissa (GET-metodi)

http://www.palvelin.nethttp://www.palvelin.net??sivu=etusivusivu=etusivu&&kieli=suomikieli=suomi

muuttuja arvomuuttuja arvo

• POST lähettää datan HTTP-kutsun mukana, POST lähettää datan HTTP-kutsun mukana, mutta sitä ei siirretä osana URLia mutta sitä ei siirretä osana URLia Ei GETin Ei GETin fyysistä pituusrajoitusta ja mahdollistaa fyysistä pituusrajoitusta ja mahdollistaa multipart/form-data enkoodauksen.multipart/form-data enkoodauksen.

Page 14: PHP osa 1

14Ville Seppänen ([email protected])

Muuttujista (2)Muuttujista (2)

• PHP:n tietotyypitPHP:n tietotyypit• Boolean (PHP4), kaksiarvoinenBoolean (PHP4), kaksiarvoinen• Integer, kokonaislukuInteger, kokonaisluku• Float, liukulukuFloat, liukuluku• String, merkkijonoString, merkkijono• Array, taulukkoArray, taulukko• ObjectObject

• Luokan ilmentymä oliokoodissaLuokan ilmentymä oliokoodissa

• Resource (PHP4)Resource (PHP4)• Sisältää viittauksen ulkoiseen resurssiin. Resurssit luodaan ja Sisältää viittauksen ulkoiseen resurssiin. Resurssit luodaan ja

niitä käsitellään määrätyillä funktioilla (esim. tietokantakyselyn niitä käsitellään määrätyillä funktioilla (esim. tietokantakyselyn suorittava funktio ja sen palauttama resurssimuuttuja)suorittava funktio ja sen palauttama resurssimuuttuja)

Page 15: PHP osa 1

15Ville Seppänen ([email protected])

Vertailu- ja loogiset operaattoritVertailu- ja loogiset operaattorit

• PHP:n vertailuoperaattorit:PHP:n vertailuoperaattorit:• == equals (sama arvo)== equals (sama arvo)• === identical (sama arvo ja sama tietotyyppi)=== identical (sama arvo ja sama tietotyyppi)• != not equal != not equal • <> not equal <> not equal • < less than< less than• > greater than> greater than• <= less than or equal to<= less than or equal to• >= greater than or equal to>= greater than or equal to

• PHP:n loogiset operaattorit:PHP:n loogiset operaattorit:• ! NOT! NOT• && AND&& AND• | | OR| | OR

Page 16: PHP osa 1

16Ville Seppänen ([email protected])

Muita operaattoreitaMuita operaattoreita

• Ternary operaattoriTernary operaattoriYleinen muoto:

condition ? value if true : value if false

Esim:

$answer = ($color == “red” ? “Color is red” : “Color is not red”);

• Error suppression operaattoriError suppression operaattori$a = @(57/0);

• Execution operaattoriExecution operaattori$out = ‘ls -la’;

echo “<pre>”.$out.”</pre>”;

Page 17: PHP osa 1

17Ville Seppänen ([email protected])

Funktiot (1)Funktiot (1)

• Funktioiden nimeäminen ja määrittelyFunktioiden nimeäminen ja määrittely• Nimissä sallitaan kirjain- ja numeromerkit, sekä alaviivaNimissä sallitaan kirjain- ja numeromerkit, sekä alaviiva• Nimi ei saa alkaa numerollaNimi ei saa alkaa numerolla• Nimi ei saa olla varattu sanaNimi ei saa olla varattu sana• Nimi ei saa olla valmiin funktion nimiNimi ei saa olla valmiin funktion nimi

// funktion määrittely

function omaFunktio()

{

echo “Moro!”;

}

// funktion kutsu

omaFunktio();

Page 18: PHP osa 1

18Ville Seppänen ([email protected])

Funktiot (2)Funktiot (2)

• Esimerkkejä funktion kutsumisesta:Esimerkkejä funktion kutsumisesta:

omaFunktio(); // kutsutaan ilman parametrejaomaFunktio(); // kutsutaan ilman parametreja

omaFunktio(“iso”); // string-parametrillaomaFunktio(“iso”); // string-parametrilla

omaFunktio(15.23); // float-parametrillaomaFunktio(15.23); // float-parametrilla

omaFunktio($muuttuja); // muuttujaparametrillaomaFunktio($muuttuja); // muuttujaparametrilla

omaFunktio($muuttuja, “iso”); // muuuttuja- ja string-param.omaFunktio($muuttuja, “iso”); // muuuttuja- ja string-param.

// funktio vaatii parametrin:// funktio vaatii parametrin:

function omaFunktio($koko)function omaFunktio($koko)

{{

echo “Koko on $koko.”;echo “Koko on $koko.”;

}}

omaFunktio(“iso”); // tulostaa: Koko on iso.omaFunktio(“iso”); // tulostaa: Koko on iso.

Page 19: PHP osa 1

19Ville Seppänen ([email protected])

Funktiot (3)Funktiot (3)

function omaFunktio($muoto, $koko = “iso”)function omaFunktio($muoto, $koko = “iso”)

{{

echo “Muoto on $muoto ja koko on $koko.”;echo “Muoto on $muoto ja koko on $koko.”;

}}

omaFunktio(); // warning: missing argumentomaFunktio(); // warning: missing argument

omaFunktio(“soikea”); // Muoto on soikea ja koko on iso.omaFunktio(“soikea”); // Muoto on soikea ja koko on iso.

omaFunktio(“soikea”, “pieni”); // Muoto on soikea ja koko on pieni.omaFunktio(“soikea”, “pieni”); // Muoto on soikea ja koko on pieni.

• Parametreille voidaan antaa arvo funktion Parametreille voidaan antaa arvo funktion määrittelyssä. Tällöin niille ei funktiota määrittelyssä. Tällöin niille ei funktiota kutsuttaessa vaadita arvoa.kutsuttaessa vaadita arvoa.

pakollinenpakollinen optionaalinenoptionaalinen

Page 20: PHP osa 1

20Ville Seppänen ([email protected])

Funktiot (4)Funktiot (4)

• Muuttujien vaikutusalue (scope)Muuttujien vaikutusalue (scope)• Funktion sisällä määritellyt muuttujat ovat Funktion sisällä määritellyt muuttujat ovat

voimassa vain ko. funktion sisällä (local voimassa vain ko. funktion sisällä (local variables)variables)

• Funktion ulkopuolella määritellyt muuttujat eivät Funktion ulkopuolella määritellyt muuttujat eivät ole voimassa funktioiden sisällä (global ole voimassa funktioiden sisällä (global variables)variables)

• Avainsana Avainsana globalglobal pakottaa muuttujan pakottaa muuttujan globaaliksi, vaikka se määriteltäisiin funktion globaaliksi, vaikka se määriteltäisiin funktion sisälläsisällä

• include() ja require() eivät vaikuta muuttujan include() ja require() eivät vaikuta muuttujan vaikutusalueeseenvaikutusalueeseen

Page 21: PHP osa 1

21Ville Seppänen ([email protected])

Funktiot (5)Funktiot (5), esim. vaikutusalueista, esim. vaikutusalueista

function omaFunktio()function omaFunktio()

{{

$muuttuja = “foo”;$muuttuja = “foo”;

}}

echo $muuttuja; // ei tulostettaecho $muuttuja; // ei tulostetta

function omaFunktio()function omaFunktio()

{{

echo “Funktion sisällä, \$muuttuja = “.$muuttuja.”<br />”;echo “Funktion sisällä, \$muuttuja = “.$muuttuja.”<br />”;

$muuttuja = “bar”;$muuttuja = “bar”;

echo “Funktion sisällä, \$muuttuja = “.$muuttuja.”<br />”;echo “Funktion sisällä, \$muuttuja = “.$muuttuja.”<br />”;

}}

$muuttuja = “foo”;$muuttuja = “foo”;

omaFunktio();omaFunktio();

Echo “Funktion ulkopuolella, \$muuttuja = “.$muuttuja.”<br />”;Echo “Funktion ulkopuolella, \$muuttuja = “.$muuttuja.”<br />”;

Tuloste:Tuloste:

Funktion sisällä, $muuttuja = Funktion sisällä, $muuttuja =

Funktion sisällä, $muuttuja = barFunktion sisällä, $muuttuja = bar

Funktion ulkopuolella, $muuttuja = fooFunktion ulkopuolella, $muuttuja = foo

Page 22: PHP osa 1

22Ville Seppänen ([email protected])

Funktiot (6)Funktiot (6)

• Esimerkki globalin käytöstä:Esimerkki globalin käytöstä:

function omaFunktio()function omaFunktio()

{{

global $muuttuja;global $muuttuja;

$muuttuja = “foo”;$muuttuja = “foo”;

echo “Funktion sisällä, \$muuttuja = “.$muuttuja.”<br />”;echo “Funktion sisällä, \$muuttuja = “.$muuttuja.”<br />”;

}}

omaFunktio();omaFunktio();

echo “Funktion ulkopuolella, \$muuttuja = “.$muuttuja.”<br />”;echo “Funktion ulkopuolella, \$muuttuja = “.$muuttuja.”<br />”;

Tuloste:Tuloste:

Funktion sisällä, $muuttuja = fooFunktion sisällä, $muuttuja = foo

Funktion ulkopuolella, $muuttuja = fooFunktion ulkopuolella, $muuttuja = foo

Page 23: PHP osa 1

23Ville Seppänen ([email protected])

Funktiot (7)Funktiot (7)

• Muuttuja voidaan välittää Muuttuja voidaan välittää funktiolle käyttämällä sen funktiolle käyttämällä sen arvoa (pass by value) tai arvoa (pass by value) tai viittausta alkuperäiseen viittausta alkuperäiseen muuttujaan (pass by muuttujaan (pass by reference)reference)

• Pass by value:ta käytettäessä Pass by value:ta käytettäessä muuttujan globaali arvo ei muuttujan globaali arvo ei muutu:muutu:function kertaa10($luku)

{

$luku = ($luku * 10);

}

$luku = 10;

kertaa10($luku);

echo $luku; // tulostaa 10

• Pass by referencen käyttö Pass by referencen käyttö määritellään kirjoittamalla määritellään kirjoittamalla parametrin eteen &-merkki:parametrin eteen &-merkki:

function kertaa10(&$luku)

{

$luku = ($luku * 10);

}

$luku = 10;

kertaa10($luku);

echo $luku; // tuloste 100

Page 24: PHP osa 1

24Ville Seppänen ([email protected])

Funktiot (8)Funktiot (8)

• Arvojen palauttaminenArvojen palauttaminen• Avainsana Avainsana returnreturn

lopettaa funktion lopettaa funktion suorittamisen ja ohjelman suorittamisen ja ohjelman suorittamista jatketaan suorittamista jatketaan funktion kutsua funktion kutsua seuraavasta lauseestaseuraavasta lauseesta

• returnreturnia voidaan käyttää ia voidaan käyttää myös arvojen myös arvojen palauttamiseen funktiosta.palauttamiseen funktiosta.

function random($min = 1, $max = 100)function random($min = 1, $max = 100)

{{

$random = rand($min, $max);$random = rand($min, $max);

return($random);return($random);

}}

$satunnainen = random(); $satunnainen = random();

$iso_satunnainen = random(1000, 10000);$iso_satunnainen = random(1000, 10000);

• Ehdollinen arvon Ehdollinen arvon palauttaminen:palauttaminen:

function taustaVari($rivinumero)function taustaVari($rivinumero)

{{

if(($rivinumero % 2) == 0)if(($rivinumero % 2) == 0)

return(“silver”);return(“silver”);

elseelse

return(“gray”);return(“gray”);

}}

Page 25: PHP osa 1

25Ville Seppänen ([email protected])

include ja require (1)include ja require (1)

• includeincluden käyttö helpottaa koodin hallintaa, n käyttö helpottaa koodin hallintaa, jäsentämistä ja vähentää redundanssiajäsentämistä ja vähentää redundanssia• Usein tarvittavat koodinpätkät (esim. tietokantayhteyden Usein tarvittavat koodinpätkät (esim. tietokantayhteyden

muodostaminen)muodostaminen)• KirjastotKirjastot• Teksti ja HTML-koodi (esim. heading, footer, layout, …)Teksti ja HTML-koodi (esim. heading, footer, layout, …)

• requirerequire toimii toimii includeincluden tavoin, mutta n tavoin, mutta liitettävän tiedoston puuttuminen keskeyttää liitettävän tiedoston puuttuminen keskeyttää koodin suorituksen, kun taas koodin suorituksen, kun taas includeinclude ainoastaan tulostaa varoituksenainoastaan tulostaa varoituksen

Page 26: PHP osa 1

26Ville Seppänen ([email protected])

include ja require (2)include ja require (2)

• require_oncerequire_once toimii toimii requirerequiren tavoin, n tavoin, mutta liittäminen tehdään ainoastaan mikäli mutta liittäminen tehdään ainoastaan mikäli sitä ei ole aiemmin tehty.sitä ei ole aiemmin tehty.

<?php

// avaataan tietokantayhteys - db.inc

$db = mysql_connect(“localhost”, “sqluser”, “sqlpassword”);

if(!$db) echo “Cannot connect to database”;

else mysql_select_db(“mydb”);

?>

<?php

include(“./includes/db.inc”);

?>

Page 27: PHP osa 1

27Ville Seppänen ([email protected])

include ja require (3)include ja require (3)

• Jos liitettävä tiedosto sisältää PHP-koodia, Jos liitettävä tiedosto sisältää PHP-koodia, koodi tulee kirjoittaa PHP-tagien sisälle. koodi tulee kirjoittaa PHP-tagien sisälle. Muutoin koodia ei suoritetaan vaan se Muutoin koodia ei suoritetaan vaan se liitetään mukaan tekstinä.liitetään mukaan tekstinä.

• Liitettäviä tiedostoja nimettäessä tulee Liitettäviä tiedostoja nimettäessä tulee käyttää käyttää ainoastaanainoastaan loppupäätteitä, jotka loppupäätteitä, jotka WWW-palvelin käsittelee PHP-skripteinä. WWW-palvelin käsittelee PHP-skripteinä. Muutoin tiedoston sisältö esitetään Muutoin tiedoston sisältö esitetään selaimessa tekstinä.selaimessa tekstinä.

Page 28: PHP osa 1

28Ville Seppänen ([email protected])

Kontrollirakenteista (1)Kontrollirakenteista (1)

• ifif, , else ifelse if ja ja elseelse• Jos Jos ifif-ehto on tosi, sitä seuraava koodi(blokki) -ehto on tosi, sitä seuraava koodi(blokki)

suoritetaansuoritetaan• Muussa tapauksessa, jos Muussa tapauksessa, jos else ifelse if-ehto on tosi, sitä -ehto on tosi, sitä

seuraava koodi(blokki) suoritetaanseuraava koodi(blokki) suoritetaan• Muussa tapauksessa, Muussa tapauksessa, elseelse:ä seuraava koodi(blokki) :ä seuraava koodi(blokki)

suoritetaansuoritetaan

if($i == 10)if($i == 10)

{ echo “\$i on 10”; }{ echo “\$i on 10”; }

else if($i == 5)else if($i == 5)

{ echo “\$i on 5”; }{ echo “\$i on 5”; }

elseelse

{ echo “\i$ on jotain muuta kuin 5 tai 10”; }{ echo “\i$ on jotain muuta kuin 5 tai 10”; }

Page 29: PHP osa 1

29Ville Seppänen ([email protected])

Kontrollirakenteista (2)Kontrollirakenteista (2)

• Ehtovertailuesimerkkejä:Ehtovertailuesimerkkejä:if($i < 10 || $i > 20) // ORif($i < 10 || $i > 20) // OR

if($a == TRUE && $b == FALSE) // ANDif($a == TRUE && $b == FALSE) // AND

if(!$login) // NOTif(!$login) // NOT

if(!isset($login)) // NOTif(!isset($login)) // NOT

• switchswitch ja ja casecase::switch($i)switch($i)

{{

case “10” :case “10” :

echo “\$i on 10”;echo “\$i on 10”;

break;break;

case “5” :case “5” :

echo “\$i on 5”;echo “\$i on 5”;

break;break;

}}

Page 30: PHP osa 1

30Ville Seppänen ([email protected])

Kontrollirakenteista (3)Kontrollirakenteista (3)

• while while jaja do while do whilewhile ($i <= 10)while ($i <= 10)

{{

echo “$i <br />”;echo “$i <br />”;

$i++;$i++;

}}

/* --------------------------- *//* --------------------------- */

$i = 11;$i = 11;

dodo

{{

echo “$i <br />”;echo “$i <br />”;

$i+$i+

} while ($i <= 10);} while ($i <= 10);

• do whiledo while-rakenteessa ehto tarkistetaan lopussa, joten silmukka suoritetaan aina -rakenteessa ehto tarkistetaan lopussa, joten silmukka suoritetaan aina vähintään kerranvähintään kerran

Page 31: PHP osa 1

31Ville Seppänen ([email protected])

Kontrollirakenteista (4)Kontrollirakenteista (4)

• forfor

// testataan ehtoa $i <= 10. Kun epätosi, suorittaminen loppuu// testataan ehtoa $i <= 10. Kun epätosi, suorittaminen loppuu

for($i = 1; $i <= 10; $i++)for($i = 1; $i <= 10; $i++)

{{

echo “$i <br />”;echo “$i <br />”;

}}

• Kontrollirakenteiden suorittaminen voidaan Kontrollirakenteiden suorittaminen voidaan lopettaa milloin vain lopettaa milloin vain exitexit:llä:llä

• Lisää: http://www.php.net/manual/en/control-structures.phpLisää: http://www.php.net/manual/en/control-structures.php

Page 32: PHP osa 1

32Ville Seppänen ([email protected])

Taulukot [array] (1)Taulukot [array] (1)

• Yksi tai useampi ulotteinen joukko tunniste Yksi tai useampi ulotteinen joukko tunniste (index tai key) – arvo (value) -pareja(index tai key) – arvo (value) -pareja

• Tunniste voi olla joko kokonaisluku tai Tunniste voi olla joko kokonaisluku tai merkkijonomerkkijono

• Arvo voi olla mikä tahansa, myös toinen Arvo voi olla mikä tahansa, myös toinen array (moniuloitteiset taulukot)array (moniuloitteiset taulukot)

• Demojen puitteissa taulukoihin törmätään Demojen puitteissa taulukoihin törmätään ainakin lomakkeita ja tietokantakyselyn ainakin lomakkeita ja tietokantakyselyn tuloksia käsiteltäessätuloksia käsiteltäessä

Page 33: PHP osa 1

33Ville Seppänen ([email protected])

Taulukot (2)Taulukot (2)

<form action="kasittelija.php" method="get"><br />Nimi: <input type="text" name="nimi" size="30” /><br />Email: <input type="text" name="email" size="30” /><br />Viesti: <textarea name="viesti" rows="3" cols="25”/></textarea><br /><input type="submit" name="submit" value="L&auml;het&auml;” /></form>

Array( [nimi] => Santa Claus[email] => [email protected][viesti] => Hyvää joulua![submit] => Lähetä

)

print_r($_GET); // kasittelija.php

Tuloste: $_GET-muuttujan (array) sisältö

Viittaaminen yksittäiseenelementtiin:$_GET[nimi];

Page 34: PHP osa 1

34Ville Seppänen ([email protected])

Taulukot (3)Taulukot (3)

• Taulukon muodostaminen:Taulukon muodostaminen:$myArray = array(“Santa”, “Ho ho ho!”);$myArray = array(“Santa”, “Ho ho ho!”);// tunnisteet asetetaan automaattisesti kokonaislukuina // tunnisteet asetetaan automaattisesti kokonaislukuina

nollasta alkaennollasta alkaen$myArray = array(nimi => “Santa”, viesti => “Ho ho ho!”);$myArray = array(nimi => “Santa”, viesti => “Ho ho ho!”);// tunnisteet $myArray[nimi] ja $myArray[viesti]// tunnisteet $myArray[nimi] ja $myArray[viesti]

• Suoraan arvot asettamalla:Suoraan arvot asettamalla:$myArray[0] = “Santa”;$myArray[0] = “Santa”;$myArray[1] = “Ho ho ho!”;$myArray[1] = “Ho ho ho!”;$myArray[nimi] = “Santa”;$myArray[nimi] = “Santa”;$myArray[viesti] = “Ho ho ho!”;$myArray[viesti] = “Ho ho ho!”;

Page 35: PHP osa 1

35Ville Seppänen ([email protected])

Taulukot (4)Taulukot (4)

• Taulukoiden käsitteleminenTaulukoiden käsitteleminen• Numeeriset tunnisteet mahdollistavat taulukon Numeeriset tunnisteet mahdollistavat taulukon

käsittelemisen esim. käsittelemisen esim. forfor-silmukassa-silmukassafor($i = 0; $i < count($myArray)-1; $i++)for($i = 0; $i < count($myArray)-1; $i++)

echo “$myArray[$i]<br />”;echo “$myArray[$i]<br />”;

• listlist ja ja eacheachwhile (list($tunniste, $arvo) = each($myArray))while (list($tunniste, $arvo) = each($myArray))

echo “$tunniste - $arvo <br />”;echo “$tunniste - $arvo <br />”;

• foreachforeachforeach($myArray as $tunniste => $arvo)foreach($myArray as $tunniste => $arvo)

echo “$tunniste - $arvo <br />”;echo “$tunniste - $arvo <br />”;

• Lue lisää: Lue lisää: http://www.php.net/manual/en/ref.array.phphttp://www.php.net/manual/en/ref.array.php