php.jpgJohdatus PHP-kieleen

Sisällysluettelo

JohdantoSyntaksiTietotyypitMuuttujatOperaattoritKontrollirakenteetTaulukotFunktiotLomakkeetTietokantaEvästeetSessiot

www.php.net

Muuttujat

Muuttujien käytöstä ylös

PHP on ns. heikosti tyypitetty kieli, jossa muuttujalle ei tavallisesti määritellä tietotyyppiä. Muuttujan tietotyyppi määräytyy automaattisesti muuttujan arvon mukaan. Muuttujista on muistettava se, että kaikki muuttujien nimet on aloitettava $-merkillä. Muuttujan nimi ei saa alkaa numerolla. Muuttujien nimissä voi olla myös skandinaavisia merkkejä, kuten Javassa. Alla on esimerkki muuttujien käytöstä.

<?php
  $eka = 234; //integer
  $toka = "234"; //string
  $kolmas = 1.3555; //float
  $neljäs = "1.3555"; //string
  $viides = "tekstiä";
  
  echo $eka;
  echo $eka+$toka;
  echo $eka.$toka;
  echo $neljäs+$toka;
  echo $eka.$kolmas;
  echo $eka*$viides;
?>

Voit katsoa tästä, kuinka esimerkkikoodi toimii käytännössä. Sen on tarkoitus havainnollistaa sitä, kuinka muuttujien tyyppi muuttuu automaattisesti operaattoreita käytettäessä. Esimerkiksi neljännessä tulostuslauseessa on +-operaattorilla laskettu yhteen kaksi merkkijonoa. PHP-tulkki muuntaa automaattisesti +-operaattorin molemmilla puolilla olevat merkkijonot luvuiksi. Mikäli merkkijono ei muodosta lukua, käsitellään sitä nollana. Tämä nähdään viimeisestä tulostusesimerkistä, jossa on kertolasku.

Muuttujien näkyvyys ylös

Lähes kaikki muuttujat ovat PHP:ssä globaalisti näkyvissä. Siis ohjelmalohkot {...} eivät rajoita muuttujien näkyvyyttä, kuten Javassa. Myöskään PHP-elementit (<?php ... ?>) eivät rajoita muuttujien näkyvyyttä. Poikkeus globaaliin näkyvyyteen ovat funktiot, joissa niiden ulkopuolella määritellyt muuttujat eivät ole näkyvissä. Alla on esimerkki muuttujien näkyvyydestä.

<?php
  $a = 12;
  if($a == 12){
    $b = " Ehto toteutui";
  }
?>
... XHTML-koodia ...
<?php
  echo $a.$b; //Tulostaa: 12 Ehto toteutui
?>

Esimerkistä nähdään, ettei muuttujan näkyvyys rajoitu ohjelmalohkon sisään, kuten Javassa. $b on määritelty if-lohkon sisällä, mutta siitä huolimatta se näkyy vielä lopussa olevassa tulostuslauseessa. Funktioissa ei kuitenkaan näy niiden ulkopuolella määritellyt muuttujat. Alla on esimerkki tästä. Lisää tietoa voit katsoa funktiot-sivulta.

<?php
  function muuta($a){
    $a = "Muutettu";
  }
	
  $a = 12;
  muuta($a);
  echo $a; //Tulostaa: 12
?>

Vakioiden määrittäminen ylös

Vakiot määritellään PHP:ssä define()-funktiolla. Poikkeuksena muuttujien nimiin vakioiden ei tarvitse alkaa $-merkillä. Vakion arvoksi voi määritellä ainoastaan boolean-arvon, luvun tai merkkijonon. Alla on esimerkki vakion määrittämisestä.

<?php
  define(VAKIO, "Joku merkkijono");
  echo VAKIO; //Tulostaa: Joku merkkijono
?>

Tyypinmuunnokset ylös

Muuttujan Tietotyyppiä voidaan muuttaa tilapäisesti ilmoittamalla muuttujan edellä suluissa haluttu tietotyyppi seuraavasti:

<?php
  $a = "12.345";
  $b = (int)$a; // $b:n avoksi tulee 12
?>

Edellä esitetty ilmaisutapa ei muuta muuttujan tietotyyppiä, vaan sitä ainoastaan käsitellään erityyppisenä. Jos muuttujan tyyppiä halutaan aidosti muuttaa, täytyy se tehdä settype()-funktiolla. Funktiolle annetaan kaksi parametria: muuttuja ja uusi tietotyyppi. Alla on esimerkki sen käytöstä.

settype($a, "integer");

Esimääritellyt muuttujat ylös

PHP:ssä on useita ns. esimääriteltyjä muuttujia, jotka PHP alustaa automaattisesti käytettäviksi. Seuraavassa on lueteltu joitakin näistä. Linkit osoittavat www.php.net sivustolla oleviin määrittelyihin.

Kaikki nämä esimääritellyt muuttujat ovat assosiatiivisia taulukkoja. Tietoihin viitataan halutun tiedon nimen perusteella. Esimerkiksi get-metodilla lähetettyyn 'etunimi'-nimisestä lomakekentästä lähetettyyn tietoon viitataan seuraavasti:

$_GET["etunimi"]

Hyödyllisiä funktioita ylös

isset()

isset()-funktio tarkistaa, onko jollain muuttujalla arvoa. Se palauttaa tuloksena joko true tai false. Siitä on huomattava, että tyhjä arvokin on arvo. Siis jos isset()-funktiolle annetaan parametriksi esimerkiksi tyhjä merkkijono, se palauttaa arvon true.

if(isset($muuttuja))
  echo "Muuttujalla on arvo"
else
  echo "Muuttujalla ei ole arvoa";

empty()

empty()-funtio tutkii, onko parametrina annetulla muuttujalla tyhjä arvo. Se palauttaa true, jos arvo on tyhjä ja false, jos arvo ei ole tyhjä. Tyhjäksi arvoksi tulkitaan tietotyypistä riippuen false, tyhjä merkkijono, nolla ja NULL.

gettype()

gettype()-funktio palauttaa merkkijonona parametrina annetun muuttujan tietotyypin.

$muuttuja = "jotain vaan";
echo gettype($muuttuja); //tulostaa: string

"is_type"-funktiot

Jos halutaan tarkistaa, onko muuttuja tietyn tyyppinen, on siihen suositeltavaa käyttää is_type-tyyppisiä funktioita. Kaikille tietotyypeille on erikseen tälläinen funktio: is_bool(), is_int(), is_float(), is_string(), is_array(), is_object(), is_null() ja is_resource().

if(is_int($muuttuja))
  echo '$muuttuja on integer-tyyppinen';

Erilaiisiin muuttujien testaustarkoituksiin on myös joitakin muita funktioita. Esimerkiksi is_numeric()-funktio testaa onko muuttuja lukutyyppiä tai onko se numeerinen merkkijono. empty()-funktio puolestaan testaa, sisältääkö muuttuja tyhjän arvon eli esimerkiksi nollan tai tyhjän merkkijonon.

var_dump()

var_dump()-funktio tulostaa samalla kertaa muuttujan tietotyypin ja sisällön. Se voi olla joskus hyödyllinen ohjelmaa testatessa.