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
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])
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
3Ville Seppänen ([email protected])
PHP:n käyttötilasto helmikuu 03PHP:n käyttötilasto helmikuu 03
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
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.
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
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
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)
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>
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 ?>”>
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
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
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.
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)
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
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>”;
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();
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.
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
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
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
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
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
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”);
}}
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
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”);
?>
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ä.
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”; }
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;
}}
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
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
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ä
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ähetä” /></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];
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!”;
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