Hauptmenü

Untermenü

PHP - Grundlagen - Funktionen - Parameter

1. Noch und nöcher

Manchmal weiß man zu Beginn einer Funktion gar nicht, wie viele Parameter man benötigt. Also haut man einen an den anderen rein und dasselbe Spielchen wiederholt sich dann beim Funktionsaufruf. Doch seit PHP4 ist das nun nicht mehr nötig, denn da gibt es ein paar schöne Möglichkeiten.

2. Optionale Parameter

Manchmal kann es vorkommen, dass eine Funktion an mehreren Stellen genutzt wird, aber nicht alle Parameter benötigt werden. Die erste Möglichkeit wäre, beim Aufruf "leere" Werte zu übergeben, um eine entsprechende Fehlermeldung zu umgehen:


<?php
  function doSomething ($bla$blubb$blubber)
  {
    ...
  }  
  doSomething ($schwall,'','');
?>

Das kann dann schon mal ziemlich ausarten. Daher besteht die Möglichkeit, bei optionalen Parametern bereits in der Funktionsdefinition Standardwerte vorzugeben. Dann muss man beim entsprechenden Aufruf nur noch die Parameter angeben, die wirklich benötigt werden:


<?php
  function doSomething ($bla$blubb ''$blubber false)
  {
    ...
  }  
  doSomething ($schwall);
?>

Wichtig

... ist die Reihenfolge der Parameter. Zuerst kommen all die, wo man definitiv einen Wert übergeben muss, und dann erst die optionalen. Ansonsten produziert man einen Fehler! Auch muss man bei den optionalen Parametern auf die Reihenfolge achten. Will man zum Beispiel im oberen Code nur den Wert für $blubber übergeben, so muss man für das $blubb einen Leerwert setzen.


<?php
  ...
  doSomething ($schwall''$laber);
?>

3. func_irgendwas

Bei den folgenden Funktionen muss man auf drei grundsätzliche Dinge achten:

func_num_args

Ermittelt die Anzahl der übergebenen Parameter. Anhand des Ergebnisses kann man schon eine erste Fallunterscheidung treffen.


<?php
  function bla ()
  {
    if (func_num_args() > 2)
    {
      doThis();
    }
    else
    {
      doThat();
    }
  }
  bla('blubb','blubber','laber');
?>

func_get_args

Ermittelt alle Parameter und schreibt sie in ein numerisches Array. Nun kann man über den entsprechenden Index darauf zugreifen.


<?php
  function bla ()
  {
    $params func_get_args();
    print_r ($params);
  }
  bla('blubb','blubber','laber');
?>

func_get_arg

Hier hat man direkten Zugriff auf einen Parameter anhand seines numerischen Indexes. Ist der angegebene Wert größer als die Anzahl der tatsächlichen Parameter, so wird eine entsprechende Warnung ausgegeben.


<?php
  function bla ()
  {
    $blubb func_get_arg(1);
    echo $blubb;
  }
  bla('blubb','blubber','laber');
?>

zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt