Guide:

Introduksjon til PHP

PHP er per idag det mest kjente, og muligens mest brukte, språket for dynamisk formatering av websider på internett. Det er et språk med mange muligheter, og er noe du bør kunne hvis du driver med seriøs webutvikling. Vi vil her prøve å gi en liten smakebit på språket.

Funksjoner

Det å definere en funksjon i PHP er lett. Ved å skrive function test (param1) har du definert funksjonen test med en inngangsparameter. Å gjøre funksjonskall er like enkelt. test ("hallo"); gjennomfører et kall til funksjonen.

Retur

Hva returnerer en funksjon? Siden PHP er typeløst kan du returnere praktisk talt hva som helst. Null begrensninger. Måten du returnerer er kort og godt ved å skrive return $test;.

Variabel tilgang

Variabel tilgang er noe av det første man ofte merker seg som virkelig merkelig i PHP. Fra de aller fleste store språk er man vant til å ha tilgang til variabler deklarert utenfor en funksjon slik som dette:

<?php
   $var1 = "test";
   function test ()
   {
       if (isset ($var1))
       {
           echo "Var1 er satt til $var1";
       }
       else
       {
           echo "Var1 er IKKE satt";
       }
   }

   test ();
?>

I C/C++, Java etc forventer du å se utskriften "Var1 er satt til test". I PHP derimot får du nå "Var1 er IKKE satt". For å komme rundt dette må variabler som skal kunnes defineres utenfor en funksjon og brukes og enderes inni gjøres tilgjengelige. Dette gjøres ved å skrive global etterfulgt av de variablene du vil bruke. For å få forrige eksempel til å skrive ut "Var1 er satt til test" må vi ende scriptet til følgende:

<?php
   $var1 = "test";
   function test ()
   {
       global $var1;
       if (isset ($var1))
       {
           echo "Var1 er satt til $var1";
       }
       else
       {
           echo "Var1 er IKKE satt";
       }
   }

   test ();
?>

Ikke store forskjellen, men det er nok utallige timer som er brukt på å rette opp på feil som kort og godt kommer av at variabler ikke er gjort tilgjengelig i funksjoner.

Det er gode grunner for at man i et skriptspråk som PHP benytter seg av denne måten å begrense tilgang til variabler deklarert utenfor funksjonen. Hvis en benytter seg av skript som en henter fra andre risikerer en at en funksjon benytter en variabel med samme navn som en variabel som brukes i skriptet som inkluderer den. Denne funksjonen måtte dermed ha sikret seg at den ikke endret noen ytre variabler. Det er mye enklere å måtte skrive global $var1; i toppen av funksjonen enn å måtte bruke midlertidige variabler for alle variabler du bruker for så å gjennopprette dem på slutten.

Nøsting

Grunnet PHP sin dynamiske tankegang og muligheten for å inludere andre filer hvor som helst støtter PHP nøsting av funksjoner. Følgende er tilatt i PHP:

<?php
$var1 = "test";
$var2 = "test2";

function test ()
{
   global $var1;

   function test2()
   {
      global $var1, $var2;
      echo "Var1: $var1\n";
      echo "Var2: $var2\n";
   }

   test2 ();
}

test ();
test2 ();
?>

Hvis du prøver å kjøre dette skriptet vil du se at test2 er definert både utenfor og inne i funksjonen test. test2 har heller ingen problemer med å få tilgang til $var2 selv om ikke test har tilgang til denne. I praksis er det ingen forskjell på å deklarere en funksjon inne i en funksjon eller utenfor. Tilgangen til den er samme uansett.