logo   PHP - Egne funktioner




En funktion er en navngivet container, der kan indeholde php- og / eller html-kode. Den kan kaldes og udføres så tit det skal være. Omvendt udføres den ikke, før den bliver kaldt, uanset hvor den fysisk er placeret. Funktioner kan være indlejret i aktuelt program, eller samlet i et funktionsbibliotek - der så includes efter behov. Det kan af linkhensyn være hensigtsmæssigt, at placere biblioteket så tæt på rooten som muligt.


Det kan være hensigtsmæssigt at samle alle egne funktioner i en enkelt fil (et "funktionsbibliotek"). For altid at gøre tingene ensartet kan filen placeres i root-mappen for det aktuelle projekt eller site. Derfra kan den ment tilknyttes i alle relevante situationer med en "include".


En måde at bygge en funktion på kan være, først at etablere koden "on location" og derefter indpakke den i grundformen for funktioner - incl. indsættelse af identer for parametre. Husk da, at variabelnavne evt. skal være lidt mere generelle, så funktionen bedre kan indpasses i andre sammenhænge. Return-nøgleordet og evt. kode knyttet dertil skal også tilpasses.




Byg en funktion


Grundformen for opbygning af en funktion er:

function eget_1tydigtNavn([parameter01[, ...]] )
{
.
kode;
.
return $xxx;(hvis funktionen skal levere uddata)

}


Navn


Der er en række regler for navngivning af funktioner:


  • Skal være forskelligt fra PHP standard funktion.
  • Kombination af bogstaver tal og "_" må anvendes. (ikke Æ, Ø og Å)
  • Skal starte med et lille bogstav eller "_".
  • Bør være så "sigende" som muligt.
  • Kamel-formatering må anvendes


Parametre


En funktion skal have tilført parametre, hvis det er nødvendigt for at den kan udføre sin funktionalitet.


Et parameter kan være en forud defineret variabel eller et tal eller en tekststreng (de sidste to nok sjældent).


Flere parametre kan anføres som en kommasepareret streng. Ingen komma efter sidste parameter.


Hvert enkelt parameter kan tilføres værdi på 3 måder:

  • $varnavn01, der henter værdi fra en allerede defineret variabel
  • $varnavn01 = 'Jensen'
  • 'Jensen'


Der skal (kunne) tilføres værdier til alle parametre i en funktion.


Parametre - optionelle


Det kan forekomme at koden i en funktion kan 'overleve' selvom et af parametrene mangler. Data til parameteret kan da (på mindst 2 forskellige måder) gøres optionelt:


  • Default-metoden:
    Indsæt en default-værdi og tag passende hånd om den i funktionens kode. Bliver der leveret en rigtig værdi til $parameter02 vil default-værdien blive overskrevet.
    function eget_1tydigtNavn($parameter01, $parameter02 ="" )
    {
    .
    if ($parameter02 == "" {.....}
    }
    I stedet for "" kan parameter02 også indeholde en defaultværdi; f.eks: "Jensen".

  • Blank-metoden
    Parameterfeltet tilføres ingen værdi. Tag passende hånd derom i funktionens kode.
    function eget_1tydigtNavn($parameter01, )
    {
    .
    if (!isset($parameter02)) {....}

    eller
    if (empty($parameter02)) {....} }


Globale variabler


I stedet for at benytte 'funktionsvejen' kan variabler hentes ind i en funktion som 'globale variabler'. Inde i funktionen anvendes syntaksen 'global $varnavn;'. '$varnavn = $GLOBALS[$varnavn];' kan også anvendes.


Ved brugen af en funktion kan man nemt overse den globale. Den kan findes / ikke findes på funktionens nye brugssted, og den kan have en helt utilsigtet værdi. Globale variabler bør derfor undgås.


Return


Nøgleordet 'return' har en dobbelt funktionalitet i en funktion:

  • Det stopper udførelsen af funktionen selvom der er mere kode tilbage.
  • Det returnerer væriden af anført variabel til dens 'omverden'. Omverdenen kan antage 2 former:
    • Funktionen er kaldt som (endel af) værdien i en variabel:
      Funktionens væridi udgør eller indgår i variablens værdi.
    • Funktionen er kaldt direkte (udenfor variabel):
      Return kan returneres til:
      return $varnavn;
      Er der behov for flere må de samles i en array:
      $varnavn = array($varnavn01, $varnavn02, 'Jensen',...);
      return $varnavn;
      ,
      der opløses udenfor som:
      $varnavn01 = varnavn[0];
      $varnavn02 = varnavn[1];
      $varnavn03 = varnavn[2];


Resultatet af en funktion kan også udnyttes således; echo eget_1tydigtNavn();.


Indeholder en funktion ingen Return returneres NULL.


Reference


Når større datamængder skal returneres fra en funktion kan det være hensigtsmæssigt at anvende fremgangsmåden 'reference':




Brug en funktion


Funktionsnavne er ikke 'case sensitive'.


Grundformen for brug af en funktion er:

egetEntydigtNavn();
eller
egetEntydigtNavn($a, ..., $n);


Indsættes der hvor funktionskoden skulle have været.




Egne funktioner og variabler


Der er 4 regler knyttet til "Egne funktioner og variabler":


  • Variabler placeret udenfor en funktion kan kun bruges inde i en funktion ved at blive tilført som parameter.
  • Variabler defineret inde i en funktion kan kun bruges inde i en funktion.
  • Variabel (kun 1) knyttet til "return" kan bruges udenfor funktionen.
  • Ved inde i en funktion at angive "global $a, ..., $n;" kan veriabler defineret udenfor funktionen trækkes ind i den og anvendes. (Tilførsel som parameter bør foretrækkes).























x
x