Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Ville Seppänen PHP osa 1 Verkkotekniikan jatkokurssi Kevät 2003 Ville Seppänen

Samankaltaiset esitykset


Esitys aiheesta: "Ville Seppänen PHP osa 1 Verkkotekniikan jatkokurssi Kevät 2003 Ville Seppänen"— Esityksen transkriptio:

1 Ville Seppänen (rissepp@cc.jyu.fi)1 PHP osa 1 Verkkotekniikan jatkokurssi Kevät 2003 Ville Seppänen (rissepp@cc.jyu.fi)

2 2 Sisältö 1.Yleistä 2.Skriptien kirjoittaminen 3.Muuttujista 4.Operaattoreista 5.Funktioiden määrittely ja käyttäminen 6.include ja require 7.Kontrollirakenteista 8.Taulukoista

3 Ville Seppänen (rissepp@cc.jyu.fi)3 PHP:n käyttötilasto helmikuu 03

4 Ville Seppänen (rissepp@cc.jyu.fi)4 Yleistä (1) Alkoi 1994 yhden miehen, Rasmus Lerdorfin, projektina Personal Home Page Alkoi 1994 yhden miehen, Rasmus Lerdorfin, projektina Personal Home Page Nykyisin useita kehittäjiä, vapaa Open Source projekti, nimi muuttunut muotoon PHP Hypertext Preprocessor Nykyisin useita kehittäjiä, vapaa Open Source projekti, nimi muuttunut muotoon PHP Hypertext Preprocessor Viimeisin versio 4.3.1 (www.php.net) Viimeisin versio 4.3.1 (www.php.net)www.php.net Kehityksessä oleva versio 5 tulee muuttamaan PHP:n enemmän oliokielen suuntaan Kehityksessä oleva versio 5 tulee muuttamaan PHP:n enemmän oliokielen suuntaan

5 Ville Seppänen (rissepp@cc.jyu.fi)5 Yleistä (2) ‘Serverside HTML-embedded scripting language’ ‘Serverside HTML-embedded scripting language’ PHP-skripti kirjoitetaan tavallisesti HTML-koodin sekaan PHP-skripti kirjoitetaan tavallisesti HTML-koodin sekaan Asiakkaan pyytäessä skriptiä sisältävää dokumenttia palvelimelta, palvelin suorittaa dokumenttiin upotetun koodin Asiakkaan pyytäessä skriptiä sisältävää dokumenttia palvelimelta, palvelin suorittaa dokumenttiin upotetun koodin ja (tavallisesti) palauttaa vastauksena staattisen HTML- dokumentin ja (tavallisesti) palauttaa vastauksena staattisen HTML- dokumentin HTTP ja HTML asettavat tiettyjä rajoituksia HTTP ja HTML asettavat tiettyjä rajoituksia Suunniteltu web-käytöön Suunniteltu web-käytöön Paljon valmiita funktioita yleisiin käyttötarkoituksiin; esim. grafiikan ja PDF-dokumenttien generointi, sähköpostin lähettäminen, cookieiden käsittely, yhteydet muihin verkkopalveluihin ja erilaisiin tietokantoihin jne. Paljon valmiita funktioita yleisiin käyttötarkoituksiin; esim. grafiikan ja PDF-dokumenttien generointi, sähköpostin lähettäminen, cookieiden käsittely, yhteydet muihin verkkopalveluihin ja erilaisiin tietokantoihin jne.

6 Ville Seppänen (rissepp@cc.jyu.fi)6 Yleistä (3) Syntaksi perustuu muihin ohjelmointikieliin, pääasiassa C:hen ja Perliin. Piirteitä myös C++:sta ja Javasta. Mahdollista kirjoittaa oliotyyliin. Syntaksi perustuu muihin ohjelmointikieliin, pääasiassa C:hen ja Perliin. Piirteitä myös C++:sta ja Javasta. Mahdollista kirjoittaa oliotyyliin. Siirrettävää: koodi toimii ilman muutoksia tai pienin muutoksin (hakemistoviittaukset jne.) erilaisilla alustoilla (vapaat ja kaupalliset Unixit, Windowsit jne.) sekä lukuisissa WWW-palvelimissa laajennusmodulien avulla, esim. Apache ja MS IIS Siirrettävää: koodi toimii ilman muutoksia tai pienin muutoksin (hakemistoviittaukset jne.) erilaisilla alustoilla (vapaat ja kaupalliset Unixit, Windowsit jne.) sekä lukuisissa WWW-palvelimissa laajennusmodulien avulla, esim. Apache ja MS IIS

7 Ville Seppänen (rissepp@cc.jyu.fi)7 Yleistä (4) Verrattaessa ‘kilpailijoihinsa’ (esim. Perl, ASP, JSP, Cold Fusion) PHP:n vahvuuksia ovat: Verrattaessa ‘kilpailijoihinsa’ (esim. Perl, ASP, JSP, Cold Fusion) PHP:n vahvuuksia ovat: Suorituskyky Suorituskyky Liittymä useille tietokannoille Liittymä useille tietokannoille Sisäänrakennetut kirjastot yleisille web-sovelluksiin liittyville tehtäville Sisäänrakennetut kirjastot yleisille web-sovelluksiin liittyville tehtäville Edullinen (  ilmainen) Edullinen (  ilmainen) Helppo oppia ja käyttää Helppo oppia ja käyttää Siirrettävyys Siirrettävyys Lähdekoodin saatavuus (Welling & Thomson, 2001) Lähdekoodin saatavuus (Welling & Thomson, 2001) Koodin pituus PHP:lla toteutettuna on tyypillisesti vain murto-osan esim. vastaavasta Perl-koodista Koodin pituus PHP:lla toteutettuna on tyypillisesti vain murto-osan esim. vastaavasta Perl-koodista

8 Ville Seppänen (rissepp@cc.jyu.fi)8 Skriptin kirjoittaminen (1) Palvelin tunnistaa PHP-skriptiä sisältävät tiedostot tiedostonimen päätteen perusteella, yleensä.php,.php3,.php4 tai.phtml (hyväksytyt päätteet riippuvat palvelimen asetuksista) Palvelin tunnistaa PHP-skriptiä sisältävät tiedostot tiedostonimen päätteen perusteella, yleensä.php,.php3,.php4 tai.phtml (hyväksytyt päätteet riippuvat palvelimen asetuksista) PHP-skriptit kirjoitetaan tai merkkiparien sisälle (suosi jälkimmäistä muotoa) PHP-skriptit kirjoitetaan tai merkkiparien sisälle (suosi jälkimmäistä muotoa)

9 Ville Seppänen (rissepp@cc.jyu.fi)9 Skriptin kirjoittaminen (2) <html><head><title>Päiväys<title></head><body><p> <?php // PHP-koodi alkaa echo “Tänään on: “; echo time(“d-m-Y”); ?> // PHP-koodi loppuu </p></body></html>

10 Ville Seppänen (rissepp@cc.jyu.fi)10 Skriptin kirjoittaminen (3) <?php $myString = ‘Hello, world!’; ?> <?php echo $myString; ?> <?php $myString = ‘Hello, world!’; echo “ $myString ”; ?> <?php $myString = ‘Hello, world!’; echo “ ”.$myString.” ”; ?> <?php echo “ Iso otsikko ”; echo “ Toinen iso otsikko ”; ?> ”>

11 Ville Seppänen (rissepp@cc.jyu.fi)11 Skriptien kirjoittaminen (4) PHP-sovellus voidaan kirjoittaa kokonaisuudessaan yhteen tiedostoon tai se voidaan pilkkoa loogisesti erillisiin skripteihin PHP-sovellus voidaan kirjoittaa kokonaisuudessaan yhteen tiedostoon tai se voidaan pilkkoa loogisesti erillisiin skripteihin if($page==‘kirjoita’) { /* kirjoittamiseen liittyviä juttuja */ } else if($page==‘lue’) { /*lukemiseen liittyviä juttuja */ } else { /*jotain muuta */ } index.php lue.phpkirjoita.php

12 Ville Seppänen (rissepp@cc.jyu.fi)12 Muuttujista (1) PHP:ssa muuttujia ei tarvitse julistaa. Muuttuja luodaan, kun sille asetetaan arvo, ja muuttujan tyyppi määräytyy automaattisesti arvon tyypin mukaan PHP:ssa muuttujia ei tarvitse julistaa. Muuttuja luodaan, kun sille asetetaan arvo, ja muuttujan tyyppi määräytyy automaattisesti arvon tyypin mukaan $myInterger = 1; $myString = “Hello, world!”; $myArray = array(“Hello”, “world!”); echo gettype($myInteger); // integer echo gettype($myString); // string echo gettype($myArray); // string

13 Ville Seppänen (rissepp@cc.jyu.fi)13 Muuttujista (3) Muuttujien arvoja voidaan välittää skripteille GET tai POST-kutsujen mukana Muuttujien arvoja voidaan välittää skripteille GET tai POST-kutsujen mukana Muuttujien siirtäminen URLissa (GET-metodi) Muuttujien siirtäminen URLissa (GET-metodi) http://www.palvelin.net?sivu=etusivu&kieli=suomi muuttuja arvo POST lähettää datan HTTP-kutsun mukana, mutta sitä ei siirretä osana URLia  Ei GETin fyysistä pituusrajoitusta ja mahdollistaa multipart/form-data enkoodauksen. POST lähettää datan HTTP-kutsun mukana, mutta sitä ei siirretä osana URLia  Ei GETin fyysistä pituusrajoitusta ja mahdollistaa multipart/form-data enkoodauksen.

14 Ville Seppänen (rissepp@cc.jyu.fi)14 Muuttujista (2) PHP:n tietotyypit PHP:n tietotyypit Boolean (PHP4), kaksiarvoinen Boolean (PHP4), kaksiarvoinen Integer, kokonaisluku Integer, kokonaisluku Float, liukuluku Float, liukuluku String, merkkijono String, merkkijono Array, taulukko Array, taulukko Object Object Luokan ilmentymä oliokoodissa Luokan ilmentymä oliokoodissa Resource (PHP4) Resource (PHP4) Sisältää viittauksen ulkoiseen resurssiin. Resurssit luodaan ja niitä käsitellään määrätyillä funktioilla (esim. tietokantakyselyn suorittava funktio ja sen palauttama resurssimuuttuja) Sisältää viittauksen ulkoiseen resurssiin. Resurssit luodaan ja niitä käsitellään määrätyillä funktioilla (esim. tietokantakyselyn suorittava funktio ja sen palauttama resurssimuuttuja)

15 Ville Seppänen (rissepp@cc.jyu.fi)15 Vertailu- 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

16 Ville Seppänen (rissepp@cc.jyu.fi)16 Muita operaattoreita Ternary operaattori Ternary operaattori Yleinen muoto: condition ? value if true : value if false Esim: $answer = ($color == “red” ? “Color is red” : “Color is not red”); Error suppression operaattori Error suppression operaattori $a = @(57/0); Execution operaattori Execution operaattori $out = ‘ls -la’; echo “ ”.$out.” ”;

17 Ville Seppänen (rissepp@cc.jyu.fi)17 Funktiot (1) Funktioiden nimeäminen ja määrittely Funktioiden nimeäminen ja määrittely Nimissä sallitaan kirjain- ja numeromerkit, sekä alaviiva Nimissä sallitaan kirjain- ja numeromerkit, sekä alaviiva Nimi ei saa alkaa numerolla Nimi ei saa alkaa numerolla Nimi ei saa olla varattu sana Nimi ei saa olla varattu sana Nimi ei saa olla valmiin funktion nimi Nimi ei saa olla valmiin funktion nimi // funktion määrittely function omaFunktio() { echo “Moro!”; } // funktion kutsu omaFunktio();

18 Ville Seppänen (rissepp@cc.jyu.fi)18 Funktiot (2) Esimerkkejä funktion kutsumisesta: Esimerkkejä funktion kutsumisesta: omaFunktio(); // kutsutaan ilman parametreja omaFunktio(“iso”); // string-parametrilla omaFunktio(15.23); // float-parametrilla omaFunktio($muuttuja); // muuttujaparametrilla omaFunktio($muuttuja, “iso”); // muuuttuja- ja string-param. // funktio vaatii parametrin: function omaFunktio($koko) { echo “Koko on $koko.”; } omaFunktio(“iso”); // tulostaa: Koko on iso.

19 Ville Seppänen (rissepp@cc.jyu.fi)19 Funktiot (3) function omaFunktio($muoto, $koko = “iso”) { echo “Muoto on $muoto ja koko on $koko.”; } omaFunktio(); // warning: missing argument omaFunktio(“soikea”); // Muoto on soikea ja koko on iso. omaFunktio(“soikea”, “pieni”); // Muoto on soikea ja koko on pieni. Parametreille voidaan antaa arvo funktion määrittelyssä. Tällöin niille ei funktiota kutsuttaessa vaadita arvoa. Parametreille voidaan antaa arvo funktion määrittelyssä. Tällöin niille ei funktiota kutsuttaessa vaadita arvoa. pakollinenoptionaalinen

20 Ville Seppänen (rissepp@cc.jyu.fi)20 Funktiot (4) Muuttujien vaikutusalue (scope) Muuttujien vaikutusalue (scope) Funktion sisällä määritellyt muuttujat ovat voimassa vain ko. funktion sisällä (local variables) Funktion sisällä määritellyt muuttujat ovat voimassa vain ko. funktion sisällä (local variables) Funktion ulkopuolella määritellyt muuttujat eivät ole voimassa funktioiden sisällä (global variables) Funktion ulkopuolella määritellyt muuttujat eivät ole voimassa funktioiden sisällä (global variables) Avainsana global pakottaa muuttujan globaaliksi, vaikka se määriteltäisiin funktion sisällä Avainsana global pakottaa muuttujan globaaliksi, vaikka se määriteltäisiin funktion sisällä include() ja require() eivät vaikuta muuttujan vaikutusalueeseen include() ja require() eivät vaikuta muuttujan vaikutusalueeseen

21 Ville Seppänen (rissepp@cc.jyu.fi)21 Funktiot (5), esim. vaikutusalueista function omaFunktio() { $muuttuja = “foo”; } echo $muuttuja; // ei tulostetta function omaFunktio() { echo “Funktion sisällä, \$muuttuja = “.$muuttuja.” ”; $muuttuja = “bar”; echo “Funktion sisällä, \$muuttuja = “.$muuttuja.” ”; } $muuttuja = “foo”; omaFunktio(); Echo “Funktion ulkopuolella, \$muuttuja = “.$muuttuja.” ”; Tuloste: Funktion sisällä, $muuttuja = Funktion sisällä, $muuttuja = bar Funktion ulkopuolella, $muuttuja = foo

22 Ville Seppänen (rissepp@cc.jyu.fi)22 Funktiot (6) Esimerkki globalin käytöstä: Esimerkki globalin käytöstä: function omaFunktio() { global $muuttuja; $muuttuja = “foo”; echo “Funktion sisällä, \$muuttuja = “.$muuttuja.” ”; }omaFunktio(); echo “Funktion ulkopuolella, \$muuttuja = “.$muuttuja.” ”; Tuloste: Funktion sisällä, $muuttuja = foo Funktion ulkopuolella, $muuttuja = foo

23 Ville Seppänen (rissepp@cc.jyu.fi)23 Funktiot (7) Muuttuja voidaan välittää funktiolle käyttämällä sen arvoa (pass by value) tai viittausta alkuperäiseen muuttujaan (pass by reference) Muuttuja voidaan välittää funktiolle käyttämällä sen arvoa (pass by value) tai viittausta alkuperäiseen muuttujaan (pass by reference) Pass by value:ta käytettäessä muuttujan globaali arvo ei muutu: Pass by value:ta käytettäessä muuttujan globaali arvo ei muutu: function kertaa10($luku) { $luku = ($luku * 10); } $luku = 10; kertaa10($luku); echo $luku; // tulostaa 10 Pass by referencen käyttö määritellään kirjoittamalla parametrin eteen &-merkki: Pass by referencen käyttö määritellään kirjoittamalla parametrin eteen &-merkki: function kertaa10(&$luku) { $luku = ($luku * 10); } $luku = 10; kertaa10($luku); echo $luku; // tuloste 100

24 Ville Seppänen (rissepp@cc.jyu.fi)24 Funktiot (8) Arvojen palauttaminen Arvojen palauttaminen Avainsana return lopettaa funktion suorittamisen ja ohjelman suorittamista jatketaan funktion kutsua seuraavasta lauseesta Avainsana return lopettaa funktion suorittamisen ja ohjelman suorittamista jatketaan funktion kutsua seuraavasta lauseesta return ia voidaan käyttää myös arvojen palauttamiseen funktiosta. return ia voidaan käyttää myös arvojen palauttamiseen funktiosta. function random($min = 1, $max = 100) { $random = rand($min, $max); return($random);} $satunnainen = random(); $iso_satunnainen = random(1000, 10000); Ehdollinen arvon palauttaminen: Ehdollinen arvon palauttaminen: function taustaVari($rivinumero) { if(($rivinumero % 2) == 0) return(“silver”);elsereturn(“gray”);}

25 Ville Seppänen (rissepp@cc.jyu.fi)25 include ja require (1) include n käyttö helpottaa koodin hallintaa, jäsentämistä ja vähentää redundanssia include n käyttö helpottaa koodin hallintaa, jäsentämistä ja vähentää redundanssia Usein tarvittavat koodinpätkät (esim. tietokantayhteyden muodostaminen) Usein tarvittavat koodinpätkät (esim. tietokantayhteyden muodostaminen) Kirjastot Kirjastot Teksti ja HTML-koodi (esim. heading, footer, layout, …) Teksti ja HTML-koodi (esim. heading, footer, layout, …) require toimii include n tavoin, mutta liitettävän tiedoston puuttuminen keskeyttää koodin suorituksen, kun taas include ainoastaan tulostaa varoituksen require toimii include n tavoin, mutta liitettävän tiedoston puuttuminen keskeyttää koodin suorituksen, kun taas include ainoastaan tulostaa varoituksen

26 Ville Seppänen (rissepp@cc.jyu.fi)26 include ja require (2) require_once toimii require n tavoin, mutta liittäminen tehdään ainoastaan mikäli sitä ei ole aiemmin tehty. require_once toimii require n tavoin, mutta liittäminen tehdään ainoastaan mikäli 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”); ?>

27 Ville Seppänen (rissepp@cc.jyu.fi)27 include ja require (3) Jos liitettävä tiedosto sisältää PHP-koodia, koodi tulee kirjoittaa PHP-tagien sisälle. Muutoin koodia ei suoritetaan vaan se liitetään mukaan tekstinä. Jos liitettävä tiedosto sisältää PHP-koodia, koodi tulee kirjoittaa PHP-tagien sisälle. Muutoin koodia ei suoritetaan vaan se liitetään mukaan tekstinä. Liitettäviä tiedostoja nimettäessä tulee käyttää ainoastaan loppupäätteitä, jotka WWW-palvelin käsittelee PHP-skripteinä. Muutoin tiedoston sisältö esitetään selaimessa tekstinä. Liitettäviä tiedostoja nimettäessä tulee käyttää ainoastaan loppupäätteitä, jotka WWW-palvelin käsittelee PHP-skripteinä. Muutoin tiedoston sisältö esitetään selaimessa tekstinä.

28 Ville Seppänen (rissepp@cc.jyu.fi)28 Kontrollirakenteista (1) if, else if ja else if, else if ja else Jos if -ehto on tosi, sitä seuraava koodi(blokki) suoritetaan Jos if -ehto on tosi, sitä seuraava koodi(blokki) suoritetaan Muussa tapauksessa, jos else if -ehto on tosi, sitä seuraava koodi(blokki) suoritetaan Muussa tapauksessa, jos else if -ehto on tosi, sitä seuraava koodi(blokki) suoritetaan Muussa tapauksessa, else :ä seuraava koodi(blokki) suoritetaan Muussa tapauksessa, else :ä seuraava koodi(blokki) suoritetaan if($i == 10) { echo “\$i on 10”; } else if($i == 5) { echo “\$i on 5”; } else { echo “\i$ on jotain muuta kuin 5 tai 10”; }

29 Ville Seppänen (rissepp@cc.jyu.fi)29 Kontrollirakenteista (2) Ehtovertailuesimerkkejä: Ehtovertailuesimerkkejä: if($i 20) // OR if($a == TRUE && $b == FALSE) // AND if(!$login) // NOT if(!isset($login)) // NOT switch ja case : switch ja case : switch($i){ case “10” : echo “\$i on 10”; break; case “5” : echo “\$i on 5”; break;}

30 Ville Seppänen (rissepp@cc.jyu.fi)30 Kontrollirakenteista (3) while ja do while while ja do while while ($i <= 10) { echo “$i ”; $i++;} /* --------------------------- */ $i = 11; do{ echo “$i ”; $i+ } while ($i <= 10); do while -rakenteessa ehto tarkistetaan lopussa, joten silmukka suoritetaan aina vähintään kerran do while -rakenteessa ehto tarkistetaan lopussa, joten silmukka suoritetaan aina vähintään kerran

31 Ville Seppänen (rissepp@cc.jyu.fi)31 Kontrollirakenteista (4) for for // testataan ehtoa $i <= 10. Kun epätosi, suorittaminen loppuu for($i = 1; $i <= 10; $i++) { echo “$i ”; } Kontrollirakenteiden suorittaminen voidaan lopettaa milloin vain exit :llä Kontrollirakenteiden suorittaminen voidaan lopettaa milloin vain exit :llä Lisää: http://www.php.net/manual/en/control-structures.php Lisää: http://www.php.net/manual/en/control-structures.php

32 Ville Seppänen (rissepp@cc.jyu.fi)32 Taulukot [array] (1) Yksi tai useampi ulotteinen joukko tunniste (index tai key) – arvo (value) -pareja Yksi tai useampi ulotteinen joukko tunniste (index tai key) – arvo (value) -pareja Tunniste voi olla joko kokonaisluku tai merkkijono Tunniste voi olla joko kokonaisluku tai merkkijono Arvo voi olla mikä tahansa, myös toinen array (moniuloitteiset taulukot) Arvo voi olla mikä tahansa, myös toinen array (moniuloitteiset taulukot) Demojen puitteissa taulukoihin törmätään ainakin lomakkeita ja tietokantakyselyn tuloksia käsiteltäessä Demojen puitteissa taulukoihin törmätään ainakin lomakkeita ja tietokantakyselyn tuloksia käsiteltäessä

33 Ville Seppänen (rissepp@cc.jyu.fi)33 Taulukot (2) Nimi: Email: Viesti: Array( [nimi] => Santa Claus [email] => joulupukki@korvatunturi.fi [viesti] => Hyvää joulua! [submit] => Lähetä ) print_r($_GET); // kasittelija.php Tuloste: $_GET-muuttujan (array) sisältö Viittaaminen yksittäiseen elementtiin: $_GET[nimi];

34 Ville Seppänen (rissepp@cc.jyu.fi)34 Taulukot (3) Taulukon muodostaminen: Taulukon muodostaminen: $myArray = array(“Santa”, “Ho ho ho!”); // tunnisteet asetetaan automaattisesti kokonaislukuina nollasta alkaen $myArray = array(nimi => “Santa”, viesti => “Ho ho ho!”); // tunnisteet $myArray[nimi] ja $myArray[viesti] Suoraan arvot asettamalla: Suoraan arvot asettamalla: $myArray[0] = “Santa”; $myArray[1] = “Ho ho ho!”; $myArray[nimi] = “Santa”; $myArray[viesti] = “Ho ho ho!”;

35 Ville Seppänen (rissepp@cc.jyu.fi)35 Taulukot (4) Taulukoiden käsitteleminen Taulukoiden käsitteleminen Numeeriset tunnisteet mahdollistavat taulukon käsittelemisen esim. for -silmukassa Numeeriset tunnisteet mahdollistavat taulukon käsittelemisen esim. for -silmukassa for($i = 0; $i ”; list ja each list ja each while (list($tunniste, $arvo) = each($myArray)) echo “$tunniste - $arvo ”; foreach foreach foreach($myArray as $tunniste => $arvo) echo “$tunniste - $arvo ”; Lue lisää: http://www.php.net/manual/en/ref.array.php Lue lisää: http://www.php.net/manual/en/ref.array.php


Lataa ppt "Ville Seppänen PHP osa 1 Verkkotekniikan jatkokurssi Kevät 2003 Ville Seppänen"

Samankaltaiset esitykset


Iklan oleh Google