Guide: PHP- & MySQL-innføring: Kapittel 1
Introduksjon til PHP
Vi starter opp med en stor artikkelserie som gir deg en innføring i bruk av PHP og MySQL. Kapittel 1 gir deg en introduksjon til det helt elementære.
Inkludering av filer
Husker du jeg på side 4 snakket om problemet med at HTML er statisk? Det er på tide å vise hvorfor PHP er løsningen på alle slike sorger.
La oss fortsatt bruke eksempelet med at vi skal redigere et element på menyen. Vi ser for oss at menyen blir definert slik i HTML:
<ul id="meny"> <li><a href="index.php">Hovedsiden</a></li> <li><a href="bilder.php">Bilder</a></li> <li><a href="forum.php">Forum</a></li> </ul>
Med PHP kan vi bruke funksjonen include(). Denne inkluderer en valgt fil på det valgte området, og utfører eventuelle kommandoer filen inneholder.
<?php
include('meny/hovedmeny.php');
?>
Denne kan du lagre som for eksempel index.php. Teksten som står innenfor (' og ') definerer hvilken fil som skal inkluderes. Som alle funksjoner i PHP markerer et semikolon at funksjonen er ferdig.
Vi ser for oss at vi har følgende i meny/hovedmeny.php:
<ul id="meny"> <li><a href="index.php">Hovedsiden</a></li> <li><a href="bilder.php">Bilder</a></li> <li><a href="forum.php">Forum</a></li> </ul>
Nå vil innholdet i hovedmeny.php bli vist hver gang en forespørsel om å vise menyen blir sendt. Skal vi nå gjøre en endring på menyen er det bare å endre hovedmeny.php. Smart, sant?
Flere inkluderingsfunksjoner
Det finnes totalt fire funksjoner som inkluderer filer. Det er bygd opp av to sett med funksjoner - include-funksjonene og require-funksjonene. I tidligere versjoner av PHP var forskjellen i funksjonaliteten og hastigheten store mellom disse to settene, men dette stemmer ikke i dag. Den eneste forskjellen er i dag hva slags feilmelding de returnerer hvis noe går galt.
Include() og include_once() vil normalt generere en feilmelding ved en feil, mens require() og require_once() vil generere en feilmelding av typen "fatal error" og stoppe hele skriptet.
Som man ser av navnene til funksjonene, include_once() og require_once() er forskjellig fra include() og require() ved at de bare lar en fil bli inkludert én eneste gang i løpet av hele PHP-skriptet som kjøres. Dette kan være svært nyttig i mange tilfeller, blant annet hvis du inkluderer filer som inneholder PHP-funskjoner. Dette fordi å redeklarere funksjoner vil resultere i en fatal feilmelding og hele skriptet vil bli avbrutt.
I tillegg er det ikke uvanlig å ha (i større systemer) filer som inkluderer filer som inkluderer filer som igjen inkluderer filer, og det kan i mange tilfeller være vanskelig å huske om du har inkludert en funksjon tidligere. Dermed er *_once()-funksjonene svært nyttige.
Så hvilken av de skal jeg bruke?
Ved små skript er det letteste å bruke include(), og det er også funksjonen jeg vil benytte når jeg skriver eksempler i denne innføringen. Generelt sett kommer det mye an på hvordan du koder - hvis du vil holde deg selv i øret og ikke la det fungere hvis du har skrevet noe feil bruker du require(). I den andre enden av skalen finner vi include_once(), som vil gjemme alle konsekvenser av dine dårlige kodevaner.