PHP-kielen perusteet 3.1 Mitä tarkoittaan heredoc? Milloin sitä kannattaa käyttää? Kirjoita esimerkki sen käyttämisestä. Heredoc on ominaisuus PHP-koodaamisessa, jolla voidaan kirjoittaa pitkiä tekstejä tulostettavaksi ja tekstissä voidaan käyttää myös lainauusmerkkejä, hipsuja ja muuttujia. Heredocissa valitaan oma aloitus/päättömerkki tekstille, vaikka TL. $test = <<<TL Tällä lailla voit käyttää heredocia. Voin käyttää vaikka lainausmerkkejä. TL; echo $test; Entä mitä tarkoittaa nowdoc? Kirjoita esimerkki myös tästä. Nowdoc on melkein samnlainen kuin heredoc, mutta siinä aloitusmerkki on hipsuissa ( Näin: 'TL' ). Lopetusmerkissä ei kuitenkaan hipsuja käytetä. $test = <<<'TL' Tällä lailla voit käyttää nowdocia. Toimii! TL; echo $test; Käsky echo kirjoittaa näkyviin parametrina annetun merkkijonon tai muuttujan sisällön. Mitä seuraavat PHP-skriptit tulostavat? Testaa koodit ( XAMPPissa) ja kopioi kunkin tehtävän alle, mitä skriptit tulostavat. Opiskele asioita samalla. 3.2 $kuka= "oma nimesi"; // Kirjoita edelle oma nimesi. //Lause päättyy puolipisteeseen $ammatti= "opiskelija"; # muuttujanimi eli tunnus alkaa merkillä $ echo "Tässä tervehdys\n"; echo "sinulle $ammatti $kuka!<br />"; echo 'Hei $kuka kuinka tämä onnistuu?<br />'; echo Miksi näin?<br /> ;
Yhteenlaskusta esimerkki 3.3 $k = 1; $k = $k + "2"; $k = $k + "12. maaliskuuta"; echo "Tulokseksi saatiin $k! <br />"; Aritmeettisia operaattoreita ja matemaattisia funktioita (pow() ja sqrt()) 3.4 $tekija = "<strong>oma nimesi tähän</strong>"; // korvaa lainausmerkkien sisään nimesi kohtaan oma nimesi tähän $a = 31; $b = 43; echo $tekija. " osaa laskea:<br />\n"; // operaattori. liittää tekstejä yhteen $summa = $a +$b; echo "Lukujen $a ja $b summa on $summa<br />\n "; $erotus = $a-$b; echo "Lukujen $a ja $b erotus on $erotus<br />\n "; $tulo = $a * $b; echo "Lukujen $a ja $b tulo on $tulo<br />\n "; $osamaara = $a / $b; echo "Lukujen $a ja $b osamaara on $osamaara<br />\n "; $jakojaannos = $a % $b; echo "Lukujen $a ja $b jakojäännös on $jakojaannos<br />\n "; echo "Potenssiin korotus lasketaan funktiolla pow(luku, potenssi) <br />\n "; $potenssi = pow($a, $b); echo "Luku $a potenssiin $b on $potenssi<br />\n "; echo "Neliöjuuri lasketaan funktiolla sqrt(luku) <br />\n "; $neliojuuri = sqrt($a); echo "Luvun $a neliöjuuri on $neliojuuri<br />\n ";
Funktioita Pyöristysfunktioita on kolme round(), ceil() ja floor(). Funktiolla round() voi olla kaksi parametria, jolloin jälkimmäinen kertoo monenko desimaalin tarkkuudella pyöristetään. Funktioilla ceil() ja floor() voi olla vain yksi parametri. Miten nämä kaksi funktiota poikkeavat toisistaan? Ohje: testaa esimerkit alla ja/tai tutki funktioiden kuvauksia sivulta php.net ceil() pyöristää ylöspäin lähimpään kokonaislukuun ja floor() alaspäin. (Lähde: http://www.tuxradar.com/practicalphp/4/6/1) 3.5 echo "Pyöristetään round-funktiolla<br />\n "; $a = round(6.9); echo "$a <br />\n "; $b = round(6.5); echo "$b <br />\n "; $c = round(6.4999); echo "$c <br />\n "; $d = round(6.123456, 3); echo "$d <br />\n "; $e = round(6.12345, 4); echo "$e <br />\n "; $f = round(1000 / 160); echo "$f <br />\n "; echo "funktiolla ceil<br />\n "; $a = ceil(6.9); echo "$a <br />\n "; $b = ceil(6.5); echo "$b <br />\n "; $c = ceil(6.4999); echo "$c <br />\n "; echo "funktiolla floor<br />\n "; $a = floor(6.9); echo "$a <br />\n "; $b = floor(6.5); echo "$b <br />\n "; $c = floor(6.4999); echo "$c <br />\n ";
Merkkijonon pituuden määritys funktiolla strlen() ja ehtolause if-else 3.6 $kuka = "etunimesi sukunimesi";// korvaa oma nimesi tähän $pituus = strlen($kuka); // selvitä funktion strlen() toiminta PHP-oppaasta if ($pituus > 5) // vertailuoperaattori > eli suurempi kuin echo "Ihan kelpo $pituus merkkinen nimi: $kuka <br />"; else echo "Voiko nimessä olla vain $pituus merkkiä: $kuka <br />"; Operaattori.= sekä if-else lause ja vertailuoperaattori == yhtä suuri kuin 3.7 $t = "kukkuluuruu"; $t.= "t! "; // uusi operaattori! Mitä se (.=) tekee? $n = 13; if (strlen($t) == $n){ // Vertaillaan lausekkeiden yhtäsuuruutta == echo "pituus on $n <br />"; } else echo "\$t on \"". $t. "\" eikä sen pituus siis ole $n<br />";.= operaattori lisää t! sanaan "kukkuluuruu" Taulukon määrittelystä esimerkki (Näitä katsotaan lisää tunneilla) 3.8 $palkka = 1000; $selite= "palkkio"; $aika[0] = "syyskuu"; // tämä luo taulukon ja alustaa sen alkion arvoksi tekstin $aika[1] = "lokakuu"; // alustamalla sen alkiot $aika["loppu"] = "marraskuu"; // aika erikoista, vai mitä echo "Tässä $selite $palkka \$ työstäsi"; echo " ajalta $aika[0], $aika[1] ja $aika[loppu] <br />"; /* huomaa ettei edellä viittauksessa tarvittu lainausmerkkejä $aika["loppu"] kun viittaus oli merkkijonon sisällä */
Jatka seuraava skripti edellisen skriptin perään samaan tiedostoon. Esimerkki funktion count() käytöstä ja arvonmuunto-operaattoreita /=, *= echo "Olet ollut töissä ". count($aika). " kuukautta.<br />"; $palkka /= count($aika); // laskee muuttujan $palkka arvoksi kuukausipalkan echo "Sait kuukausipalkkaa $palkka \$ koeajalta.<br />"; echo "Saat nyt korotusta 20% ja uusi kuukausipalkkasi on ". ($palkka *= 1.2). "\$<br />"; Taulukon määrittelyyn ja alustamiseen toinen tapa ja taulukon läpikäynti foreach illa 3.9 $a = array("t" => "tyydyttävä", "H" => "hyvä", "K" => "kiitettävä"); foreach ($a as $avain => $arvo) echo "$avain : $arvo<br>"; //tämä tehdään kaikille taulukon alkioille echo "<pre>"; echo. var_dump($a). "</pre>"; // selvitä funktion var_dump() merkitys php.net -sivuilta var_dump()-funktiolla näytetään tietoa yhdestä tai useammasta muuttujasta (Lähde: http://www.w3resource.com/php/function-reference/var_dump.php)