4.5. Funktioner


<pre>
<?php
# Funktion der udskriver en streng efterfulgt af en tilfældig type af fisk.
# rand(a,b) funktionen returnere et tilfældigt tal mellem a og b inklusiv.
  function AddAFish($str)
   {
      $fisk=array("Pirana","Elektrisk Ål","Haj","Guldfisk");

      $i=rand(0,count($fisk)-1);
      echo $str." ";
      echo $fisk[$i];
      echo "\n";
   }

# Returnere den $count gange konkatenerede streng.
  function StrengGange($str,$count)
   {
     for ($i=0;$i<$count;$i++) $retstr.=$str;
     return $retstr."\n";
   }


# Enkryptere strengen via en reference
  function Encrypt(&$s)
   {
    for ($i=0;$i<strlen($s);$i++)
     {
       $s[$i]=chr(ord($s[$i])+1);
     }  
   }  

  $str="Hello World";

  AddAFish($str);
  echo StrengGange("Test",4);

# Overfør reference til funktionen:
  Encrypt(&$str);
  echo $str;
?>
</pre>

Udskriver:
Hello World Guldfisk
TestTestTestTest
Ifmmp!Xpsme

AddAFish funktionen modtager en streng og udskriver strengen igen efter fulgt af en tilfældig fisk fra fisk tabellen (Helt klart en funktion ethvert website har brug for!). AddAFish funktionen returnere ikke nogle data. StrengGange funktionen modtager to argumenter og returnere en streng. Encrypt funktionen er mere interessant, den modtager en reference (&$str) til strengen $str. Det betyder at $s variablen i Encrypt er præcist den samme variabel som den globalt defineret $str variabel, og Encrypt funktionen ændrer derfor $str direkte, og behøver ikke at returnere en streng. Selve Encrypt funktionen enkryptere strengen ved at erstatte alle tegn med det næste tegn i ASCII-tabellen dvs. 'a' bliver til 'b' osv.