Funktionen

medicus41

Mitglied
Hi alle,

ich würde mich nicht gerade als Anfänger in Sachen PHP bezeichnen. Einige Projekte hab ich schon erfolgreich absolviert. Aber an was ich mich bislang noch nie gewagt hatte sind Funktionen. Und der Grund ist einfach: ich versteh sie nicht.
Jetzt bitte nicht auf das PHP Manual verweisen ;-)

Also, könnte mir vielleicht jemand an 1/2 kleinen Beispielen erklären wie ich Funktionen erstellen kann bzw. wie sie funktionieren?

thx im Vorraus
 
eine function ist ein unterprogramm

PHP:
function rechne($a,$b) {
 $c = $a * $b;
 echo $c;
}

# und dann irgendwo in deinem phpscript

$c = 1;
rechne(2,4);
echo $c;

alle variablen a,b,c sin nur innerhalb der function bekannt ; bedeutet auch das eine var $a in deinem hauptscript wird nicht angetastet...
Werte übergibst du der function wie oben gezeigt über eine Variable

mit andern worten mit der function erweiters du dein php befehlssatz ...

mehr bei rückfragen ...
ich weiss recht kurz ...
 
Zuletzt bearbeitet:
Kleiner Nachtrag:

Variablen innerhalb von Funktionen können wir außerhalb verwerten, wenn wir RETURN und eine Kurzschreibweise verwenden.

Kleines Beispiel:

PHP:
function rechne($a,$b,$c) {
 $c = $a * $b;
  return $c;
}
# und dann irgendwo in deinem phpscript
$c = 1;
rechne(2,4,&$c);
echo $c;

also die variable die wir außerhalb der funktion haben wollen mit return als Ausgabewert festlegen und den Funktionsaufruf um "&$c" erweitern, wobei das "&" aus Variable c eine globale Variable macht.

Das ist natürlich nicht immer nötig, wenn unsere Funktion aber nur etwas tun soll, es aber nicht ausgeben, da wir noch mit den Werten arbeiten wollen - kann es gute Dienste leisten.
 
Hi,

erstmal Danke für eure Erklärungen. Aber diese Funktion ist relativ einfach nachzuvollziehen. Hättet ihr ein Beispiel einer etwas komplexeren Funktion welche ihr dann für mich zerlegt?

Danke
 
Guck mal unter den Tutorials, da sind einige sehr schöne bei...

Zum Beispiel der Template Parser von Jonathan und die MySQL Class von Kab00m...
 
@Neurodeamon:
Das ist Käse, was du da erzählst :p

return legt den Rückgabewert der Funktion fest.

Der Operator & beim Funktionsaufruf bzw. im Funktionskopf macht die Variable nicht global, sondern sorgt nur dafür, dass die Variable "by reference" und nicht "by value" übergeben wird.

Das eine hat mit dem anderen so gut wie gar nichts zu tun.
 
Nochmal ich,

nehmen wir mal folgende Funktion:

PHP:
function sortieren( $a, $b ) {
  global $sortiere_nach;

  if( $a[$sortiere_nach] == $b[$sortiere_nach] ) return 0;
  return $a[$sortiere_nach] >= $b[$sortiere_nach] ? -1 : 1;
}

$sortiere_nach = 2;
usort( $array, "sortieren");

könnte mir diese mal jemand genau erklären?
 
Original geschrieben von reima
@Neurodeamon:
Das ist Käse, was du da erzählst :p

return legt den Rückgabewert der Funktion fest.

Das meinte ich damit :-)

Original geschrieben von reima
Der Operator & beim Funktionsaufruf bzw. im Funktionskopf macht die Variable nicht global, sondern sorgt nur dafür, dass die Variable "by reference" und nicht "by value" übergeben wird.

Das eine hat mit dem anderen so gut wie gar nichts zu tun.

Ups, da muß ich wohl einen bösen Brief an den Verfasser des Buches schreiben, aus dem ich das habe :mad:

peinlich, das :error:
man lernt halt nie aus :_
 
Zuletzt bearbeitet:
function sortieren( $a, $b ) {
es wird eine funktionen mit zwei werten die übergeben werden...

global $sortiere_nach;
normal sind keine variablen vom hauptscript bekannt, aber mache mal die Var $sortiere die ausserhalb der funktion hier bekannt die kann auch geändert werden



if( $a[$sortiere_nach] == $b[$sortiere_nach] ) return 0;

wenn der vergleich stimmt gib den wert 0 zurück
hier wird auch klar das die übergebenen Vars arrays sind ...

return $a[$sortiere_nach] >= $b[$sortiere_nach] ? -1 : 1;

hier ist trick 17 :-)
wenn bedingung erfüllt ist gib -1 zurück wenn nicht +1
}

....

aufruf der funktion muss sein

$wert = sortieren($bla,$bla2);
da die funktion ja ein wert zurückgibt..
 
Zuletzt bearbeitet:
Zurück