php.jpgJohdatus PHP-kieleen

Sisällysluettelo

JohdantoSyntaksiTietotyypitMuuttujatOperaattoritKontrollirakenteetTaulukotFunktiotLomakkeetTietokantaEvästeetSessiot

www.php.net

PHP:n syntaksi

PHP-sivu on oikeastaan XHTML-sivu, joka nimetään tavallisesti .php-päätteiseksi tiedostoksi. PHP-sivulla ohjelmakoodi kirjoitetaan <?php-elementin sisään:

<?php koodia...koodia... ?>

Sivulla voi olla useita <?php-elementejä ja elementtejä voi sijoittaa mihin tahansa kohtaan XHTML-koodin sekaan. On vain muistettava pitää huolta siitä, PHP:llä tulostettaessa saadaan aikaan validia XHTML-koodia.

Tässä muutama yleinen huomio PHP:n syntaksista:

Ensimmäinen PHP-sivu ylös

Tarkastellaan seuraavaksi esimerkkiä yksinkertaisesta PHP-sivusta, joka tulostaa jotain:

<?php echo '<?xml version="1.0" encoding="ISO-8859-1"?>'?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fi">
<head>
  <title>Sivun otsikko</title>
</head>
<body>
  <h1>Tulostetaan:</h1>
  <p>  
    <?php echo "Jotain" ?>
  <p>
</body>
</html>

Esimerkissä tekstikappaleen sisään tulostetaan teksti "Jotain". Tulostus saadaan aikaan echo-komennolla antamalla sille parametriksi tulostettava merkkijono. Tulostuslause sijoittaa siis lopulta tulostettavan merkkijonon <?php-elementin paikalle XHTML-koodissa. Yhtä hyvin tekstikappaleen aloitus- ja lopetuselementit olisi voitu sijoittaa PHP:n tulostuslauseeseen alla olevan esimerkin mukaisesti.

<?php echo "<p>Jotain</p>" ?>

Kirjoitettaessa XHTML-standardin mukaista PHP-sivua on huomattava aina ensimmäisellä rivillä oleva XML-version määrittely. Se alkaa samoilla <?-merkeillä kuin PHP-elementti, minkä vuoksi PHP-tulkki yrittää tulkata sitä PHP-koodina. Siitä puolestaan seuraa virhe ja sivun suoritus keskeytyy. Tämä ongelma ratkaistaan sijoittamalla esimerkin mukaisesti XML-version määrittely PHP-elementtiin tulostuslauseeseen.

Esimerkki ehtorakenteesta ylös

PHP-elementin voi haluttaessa sulkea niin, että ehtolauseen suorituslohko jätetään auki. Myöhemmin on silloin tultava toinen PHP-elementti, jossa suorituslohko suljetaan. Väliin voidaan kirjoittaa XHTML-koodia, joka toteutetaan ehdon toteutuessa. Alla on esimerkki tästä.

<?php if(ehto){ //Tässä jätetään lohko auki ?>
<p>
  Tämä kappale näkyy, mikäli ehto toteutuu
</p>
<?php } else{ //Tässä suljetaan if-lohko ja jätetään else-lohko auki ?>
<p>
  Tämä kappale näkyy, jos ehto on epätosi
</p>
<?php } //Lopuksi suljetaan else-lohko ?>

Tulostus ylös

Edellisissä kappaleissa esitetyissä esimerkeissä tulostukseen on käytetty echo()-rakennetta. Yhtä hyvin tässä olisi voitu käyttää print()-rakennetta. Ne toimivat useimmissa tapauksissa samalla tavoin. Tulostuslause voidaan molemmissa tapauksissa muotoilla usealla eri tavalla, joita on selvitetty alla olevassa esimerkissä, jossa on käytetty print()-rakennetta.

<?php
  print "Tulostetaan jotain";
  print"Tulostetaan jotain";
  print ("Tulostetaan jotain");
  print("Tulostetaan jotain");
?>

Include ylös

PHP-sivulle voi liittää toisen tiedoston include()- tai require()-funktiolla. Funktiot sijoittavat yksinkertaisesti parametrina annetun tiedoston sisällön funktion paikalle. Toiseen tiedostoon voi olla viisasta sijoittaa vaikkapa itse kirjoitettu funktiokokoelma tai joitakin dokumentin osia. Alla on esimerkki php sivun rakenteesta, jossa dokumentin alku ja loppu ovat erillisissä tiedostoissa. Tällä tavalla saadaan jokaiselle dokumentille varmasti samanlainen runko.

<?php
  include("alku.txt");
  ...
  PHP-koodia
  ...
  include("loppu.txt");
?>

include()- ja require()-funktiot toimivat muuten täysin identtisesti, mutta require() aiheuttaa epäonnistuessaan vakavan virheen. Vakava virhe tarkoittaa sitä, että sivun suoritus lopetetaan virhetilanteeseen. Include-funktiota käytettäessä suoritusta jatketaan joka tapauksessa.