ohjeita web-sivuston tekijälle
PHP-kieleen on rakennettu useita komentorakenteita, joilla ohjelman suoritusta ohjataan. Näistä komentorakenteista jokainen on lainattu C-kielestä ja ne esiintyvät monissa muissa ohjelmointikielissä.
If/elseif/else- rakenteella toteutetaan yksinkertaisia ehdollisia suorituksia.
Syntaksi:
if(ehtolause) {
komentosarja
}
elseif(ehtolause) {
komentosarja
}
else {
komentosarja
}
Ehtolauseella tarkoitetaan vertailulausetta, joka palauttaa totuusarvon tosi tai epätosi. Jos arvo on tosi, ensimmäinen komentosarja suoritetaan. Jos ehtolauseen arvo on epätosi, siirrytään elseif-lausekkeeseen. Jos elseif-lauseen ehtolauseen arvo on tosi, suoritetaan sen alla oleva komentosarja. Jos tämäkään ei tärppää, suoritetaan viimeinen, else-lauseen alla oleva komentosarja.
Elseif-lauseita voi olla rajaton määrä, if- ja else-lauseita kuitenkin vain yksi molempia. Elseif- ja else-lauseet ovat valinnaisia eli lause toimii pelkästään if-lauseen varassa jos vaihtoehtoa suoritukselle ei tarvita.
Esimerkki:
$luku = 4;
if($luku > 5) {
print "Luku on suurempi kuin 5.";
}
elseif($luku < 5) {
print "Luku on pienempi kuin 5";
}
else {
print "Luku ei ole suurempi eikä pienempi kuin 5,
joten sen täytyy olla 5.";
}
esimerkit/ifelseifelse.php
lähdekoodi
Switch-lauseet antavat mahdollisuuden yhden muuttujan rinnakkaiseen vertailemiseen.
Syntaksi:
switch($muuttuja) {
case ensimmainen_arvo :
komentosarja
break;
case toinen_arvo :
komentosarja
break;
jne.
default :
komentosarja
break;
}
Ensimmäinen komentosarja suoritetaan, jos muuttujan $muuttuja arvo vastaa arvoa "ensimmainen_arvo". Vastaavasti, jos arvo vastaa "toinen_arvo", suoritetaan sen alla oleva komentosarja. Jos mikään ei tärppää, suoritetaan "default":n alla oleva komentosarja.
Esimerkkiohjelma tulostaa 8. kuukauden nimen, 'Elokuu':
$kuukausi = 8;
switch($kuukausi) {
case 1 :
print "Tammikuu";
break;
case 2 :
print "Helmikuu";
break;
case 3 :
print "Maaliskuu";
break;
case 4 :
print "Huhtikuu";
break;
case 5 :
print "Toukokuu";
break;
case 6 :
print "Kesäkuu";
break;
case 7 :
print "Heinäkuu";
break;
case 8 :
print "Elokuu";
break;
case 9 :
print "Syyskuu";
break;
case 10 :
print "Lokakuu";
break;
case 11 :
print "Marraskuu";
break;
case 12 :
print "Joulukuu";
break;
default :
print "Numero ei vastaa mitään kuukautta";
break;
}
esimerkit/switch.php
lähdekoodi
While-komennolla saadaan aikaan yksinkertainen silmukka. Ohjelma pyörii silmukassa niin kauan kun ehtolause on tosi. Ehtolause tarkistetaan joka kierroksella.
Syntaksi:
while(ehtolause) {
komentosarja
}
Esimerkkiskripti laskee yhdestä kymmeneen:
$numero = 1;
// niin kauan kuin numero on yhtä suuri tai pienempi kuin 10
while($numero <= 10) {
print "$numero";
// kasvatetaan muuttujan arvoa yhdellä
$numero++;
}
esimerkit/while.php
lähdekoodi
Do/while-silmukka on samanlainen kuin while-silmukka vain sillä erolla, että do/while-silmukassa komentosarja suoritetaan ainakin kerran. Komentosarja suoritetaan siis kerran ennen kuin ensimmäisen kerran tarkistetaan ehtolauseen arvo.
Syntaksi:
do {
komentosarja
} while(ehtolause);
Seuraavan esimerkin silmukka suoritetaan vain kerran, koska 15 on suurempi kuin 10.
$numero = 15;
do {
print "$numero";
$numero++;
} while($numero <= 10);
esimerkit/dowhile.php
lähdekoodi
For-silmukkaa käytetään lähes yksinomaan silmukoissa, joissa silmukan tulee osata "laskea" tietystä numerosta tiettyyn numeroon.
Syntaksi:
for(alustuslause; ehtolause; iteraatiolause) {
komentosarja
}
Ennen silmukan aloitusta suoritetaan alustuslause. Siinä määritellään yleensä silmukan laskurimuuttujalle lähtöarvo. Ehtolause suoritetaan joka kierroksen alussa. Jos ehtolauseen tulos on tosi, suoritetaan seuraava kierros. Jos tulos on epätosi, jatketaan ohjelman suoritusta silmukan jälkeen. Iteraatiolause suoritetaan joka kierroksen jälkeen. Siinä yleensä muutetaan laskurimuuttujaa niin, että ehtolause ei palauta enää tosiarvoa kun silmukoita on tehty riittävä määrä.
Esimerkkiskripti laskee yhdestä kymmeneen:
/*
lähtöarvo on yksi; suoritetaan silmukka niin kauan kuin
numero on yhtä suuri tai pienempi kuin 10;
kasvatetaan numeron arvoa yhdellä joka kierroksella
*/
for($numero = 1; $numero <= 10; $numero++) {
print "$numero";
}
Seuraava sivu: Aliohjelmat.
Onko ideoita miten sais silleen et muuttujat: $luku1 $luku2 $luku3 $luku4 $luku5 ..menisivät arvoiltaan suuruusjärjestykseen, siten että suurin arvo menisi $luku1:een ja pienin $luku5:een?
30.5.2004 20:15Tuollainen kannattaa toteuttaa taulukolla (array). Taulukko on kokoelma muuttujia. Esimerkiksi:
$luvut = array(1,2,3,4,5);
sort($luvut); // järjestää taulukon suuruusjärjestykseen
Nyt $luvut[0] = 1, $luvut[1] = 2 jne.
$luvut = array_reverse($luvut); // kääntää järjestyksen
Nyt $luvut[0] = 5, $luvut[1] = 4 jne.
Muutama "erilainen" if-lause
if (ehtolause):
komentosarja
elseif (ehtolause):
komentosarja
else:
komentosarja
endif;
Tälläinen toimii myös:
(ehtolause) ? tosi : epätosi;
esim:
$str = 1;
echo ($str > 0) ? 'tottahan tuo' : 'ei pidä paikkaansa';
Mä en ihan tajunnu mikä tos on idea... pelkkii numeroita noissa esimerkeissä... HÄH .. iha tavallist tekstii....????????!!!!
27.6.2005 02:53Voisiko joku kertoa, millä koodinpätkällä saa linkin muuttamaan väriään kun kursori viedään sen päälle?
17.9.2005 17:18Tuossa ohessa kerrottiin, että if-lauseessa ei välttämättä tarvita muuta kuin if. Onko mitään ideaa tehdä if-lausetta, jossa on vain if? Eikö toimittaisi saman asian kirjoittaa sama sisältö ilman ifiä ihan suoraan .php-fileeseen.
18.11.2005 15:04Miten saisin ohjattua käyttäjän jollekin sivulle jos hän syöttää johonkin tiettyyn kenttään esim luvun 100 ja lähettää lomakkeen?
24.1.2007 10:38www.onnellinenkoodaaja.on.nimp.org/hypert/mymain/sivu
tuolla on jotain tarpeellista tietoa.
Ei oikeen tahtonut toimia nuo sivut... Mutta osoitteesta päätelleen siellä ei voinut olla mitään järkevää.
30.4.2007 21:39>>www.onnellinenkoodaaja.on.nimp.org/hypert/mymain/sivu
>>tuolla on jotain tarpeellista tietoa.
Joo onpa kypsää, Firefox tykkäsi tosi paljon, onneksi oli Linux ja kill, ei se sivusto ollut auki montaa sekuntia...
"Firefox on estänyt 288 ponnahdus ikkunaa...."
Olikohan edes oma emailisi, vai toivotko saavasi hyvän kirjekaverin?
Ihan oikeesti, vois rajottaa vähän mitä työntää nettiin, em. sivujen tekijä vois laittaa kuvansa nettiin, jotta tunnistaisi kun kävelee kadulla vastaan.
Hei!
Ajattelin kysyä että miten voi tehdä sivuille sellaisen jutun että se ottaa summan mutikassa jonkun lauseen. Eiköhän kysymykseni kuulu tänne vai?
miten php tallennetaan?
23.1.2008 17:0325.12.2007 16:31
ville
miten php tallennetaan?
Php tallennetaan esim. nimellä index.php
Niko: php suoritetaan serverillä, joten sillä ei ole hajuakaan, mitä teet hiirellä. Sen sijaan hommasi onnistuu javascriptillä.