Introduktion Til Php Programmering

Introduktion

Php er et programmeringssprog, der er specielt egnet til at programmere webapplikationer.

Alle PHP sider starter med <?php og slutter med ?>

Vores første program skal udskrive tekst til skærmen/browseren:

<?php
 
echo('Sejt Nok');
 
?>

Las os kigge nærmere på PHP koden. echo er en funktion der bliver givet et input argument, nemlig 'Sejt Nok'. Ligesom en matematisk funktion kaldes echo funktionen ved at anvende parenteser - i mellem parenteserne gives argumenterne til funktionen. I dette tilfælde er der et argument, nemlig 'Sejt Nok'.

En sekvens af karakterer der er omsluttet af anførselstegn (') kaldes en streng. echo tager også andre typer argumenter end strenge fx tal. Et program der udskriver resultatet af en addition af to tal ser ud som følger:

<?php
 
echo(1+10);
 
?>

Hvis vi vil udskrive dags dato, kan det gøres på følgende måde:

<?php
 
echo(date('m.d.Y'));
 
?>

Da koden blev udført udskrev det : 17.02.2012. I dette eksempel er der to funktioner i spil - echo og date. date er en funktion der returnerer en formateret dato. Formatet gives som argument til date. I dette tilfælde er det 'm.d.Y', hvilket angiver at datoen skal formateres som måned.dato.år. Da date funktionen er inde i echo funktionen kaldes date før echo.

Mere om date: http://php.net/manual/en/function.date.php

Ofte har vi brug for at sætte strenge sammen. I PHP gøres det ved at anvende punktum i mellem de strenge der skal sættes sammen.

<?php
 
echo('Hej' . ' med' . ' jer');
 
?>

Variable

Når man programmerer, har man tit behov for at gemme værdier for at kunne læse eller skrive til disse værdier senere i ens program.
Disse kaldes for variable. En variabel i PHP defineres altid med et $ foran navnet på variablen. Lad os se på et eksempel:

<?php
 
$dreng = "Hans";
$alder_dreng = 20;
 
$pige = "Hanne";
$alder_pige = 19;
 
$samlet_alder = $alder_dreng + $alder_pige;
echo($samlet_alder);
?>

En værdi tildeles til en variabel ved at benytte lig med. Derfor har variablen $alder_dreng værdien 20. Værdien af variablen $samlet_alder er 39 fordi de to variable er blevet adderet. Vi vil i de næste afsnit benytte variabler ofte i sammenhæng med de andre grundprincipper.

If-sætninger

If-sætninger benytter man ofte til at håndtere forskellige scenarier i ens program. Grundopbygningen af if-sætninger ser således ud:

<?php
if (betingelse1) {
    // Kode
}
else if (betingelse2) {
    // Kode
}
else if (betingelse3) {
    // Kode
}
else {
    // Kode
}
?>

Det skal nævnes at når computeren kører igennem dette, ignorer den linjer der begynder med //. Disse linjer kaldes kommentarer.

Et konkret eksempel med if-sætninger kunne være følgende:

<?php
 
$navn = '';
 
if ($navn == 'Hans') {
    echo('Dette er en dreng');
}
else if ($navn == 'Hanne') {
    echo('Dette er en pige');
}
else {
    echo('Jeg kender ikke navnet: ' . $navn);
}
 
?>

Bemærk at der i betingelserne anvendes dobbelt lighedstegn. Dobbelt lighedstegn sammenligner værdien på begge sider af det og returnerer en sandt eller falsk værdi. == er altså vidt forskellig fra =.

Løkker

En løkke udfører noget programkode et antal gange indtil scenariet/konditionen i løkken afsluttes. Et eksempel på en løkke kunne være, at vi ønsker at gennemgå alle blogindlæg, og for hvert indlæg ønsker vi at printe til browseren. Et andet eksempel kunne være, at vi ønsker at gennemgå alle rækker i et Lectio-skema for at finde ud af, hvilke lektier man har.

<?php
// Eksempel 1
while (betingelse) {
    // Kode der skal udføres så længe betingelsen gælder / er sand.
}
 
// Eksempel 2
foreach (element i en liste) {
    // Kode
}
 
// Eksempel 3
for (counter = 0; counter < 10; counter++) {
    // Kode
}
 
?>

Et konkret eksempel:

<?php
// Eksempel 1: Lægger 1, 2, 3 op til 10 sammen.
$total = 0;
$i = 1;
while ($i <= 10) {
    $total = $total + $i;
    $i = $i + 1;
}
 
// Eksempel 2: Gennemgår alle rækker i en tabel
foreach($table->find('tr') as $tr) {
    // For hver række tr i en tabel
}
 
// Eksempel 3: Lægger 1, 2, 3 op til 10 sammen.
$total = 0;
for ($i = 1; $i <= 10; $i = $i + 1) {
    $total = $total + $i;   
}
?>

Funktioner

Funktioner gør det muligt, at placere noget kode i en funktion, og kalde den en eller flere gange. Typisk laver man en funktion for at gøre ens kode mere læslig og for at kunne genbruge noget kode. Det kunne fx være en funktion, der laver en bestemt udregning eller en funktion, der fortæller om et navn er et drengenavn eller et pigenavn. Det kan også være en funktion, der giver ugenummeret ud fra dags dato. Fx uge 8.

<?php
function navn_på_functionen($arg1, $arg2, $arg3) {
    // Kode
}
 
// Man kalder funktionen på følgende måde:
navn_på_functionen(24, 2, 2012);
?>

Er et tal et primtal?

<?php
 
function primtal($tal) {
    echo("<br/><br/>");
    echo("Er " . $tal . " et primtal?<br/>");
    for ($i = 2; $i < $tal; $i++) {
        $value = $tal / $i;
 
        if (intval($value) == floatval($value)) {
            echo("Dette er IKKE et primtal");
            return false;
        }
    }
 
    echo("Dette er et primtal");
    return true;
}
// kald funktionen
primtal(13);
primtal(3);
primtal(7);
primtal(10);
primtal(400);
primtal(453);
?>
// Svar:
Er 13 et primtal?
Dette er et primtal

Er 3 et primtal?
Dette er et primtal

Er 7 et primtal?
Dette er et primtal

Er 10 et primtal?
Dette er IKKE et primtal

Er 400 et primtal?
Dette er IKKE et primtal

Er 453 et primtal?
Dette er IKKE et primtal

Et andet eksempel kunne være, hvilket ugenummer har vi i denne uge?

<?php
function get_weeknumber($date) {
    return date('W', $date); 
}
?>

Funktionen anvender kommandoen return. Denne kommando betyder at funktionen returnerer en værdi, i dette tilfælde uge nummeret. Det er en typisk fejl at glemme at indsætte return. get_weeknumber er uden return nytteløs.

Medmindre andet er angivet, er indholdet af denne side licenseret under Creative Commons Attribution-NonCommercial 3.0 License