function
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anfnger
anweisung
aufruf
befehl
beispiel
beitrag
datei
definiton
eigene funktionen
erneut schreiben
funktion
gesamten quelltext
klasse
klassisches beispiel
quadratwurzel
schulen
sinnloses beispiel
spezieller beitrag
summen
zurck
-
hey leute
ich habe keine zeit im forum rumzustörbern, also habe ich einen neuen thread angefangen. Ich wollte fragen was bei PHP den Befehl (oder was das auch immer ist) function bedeutet. wir haben es in der schule angefangen, aber eben nur angefangen und ich habe es nicht verstanden. Kann mir jemand mal das erklären. Ich bin ein anfänger in bereich PHP und MySQL. Könnt ihr mir mal das erklären und zwar mit beispielen und so wenns geht. Danke schon im voraus.
mfg
xasa
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
xasa schrieb:
hey leute
ich habe keine zeit im forum rumzustörbern, also habe ich einen neuen thread angefangen. Ich wollte fragen was bei PHP den Befehl (oder was das auch immer ist) function bedeutet. wir haben es in der schule angefangen, aber eben nur angefangen und ich habe es nicht verstanden. Kann mir jemand mal das erklären. Ich bin ein anfänger in bereich PHP und MySQL. Könnt ihr mir mal das erklären und zwar mit beispielen und so wenns geht. Danke schon im voraus.
mfg
xasa
Den Befehl findest du in jeder guten PHP-Befehlsreferenz. Zum Beispiel bei SELFPHP:
http://www.selfphp.de/praxisbuch/praxisbuch.php?group=16
Da steht eigentlich alles mit Beispielen drin. -
Mit function() kannst du dir eigene Funktionen in PHP schreiben. Das ist z.B. sehr praktisch, wenn man ein und die selbe Sache öfters im Quelltext machen muss (z.B. eine Berechnung), aber nicht mehrmals den gleichen Code schreiben will. Außerdem kann man Funktionen in eine andere Datei ausgliedern und diese dann includen, so dass man nicht den gesamten Quelltext editieren muss, wenn man was an der Funktion ändern will, sondern nur die Datei, in der die Funktion steht.
Mal so als ganz simples (und eigentlich sinnloses) Beispiel:
<? function hello() { return "Hello World"; } echo hello(); ?>
Das sollte dann mit dem Aufruf von hello() "Hello World" ausgeben.
In der Praxis sind Funktionen dann natürlich wesentlich umfangreicher und spezieller.
Beitrag geaendert: 29.3.2007 16:40:33 von tct -
Eine funktion definiert einen Bereich der meist häufiger als einmal ausgeführt werden sollte. Allerdings fördern Funktionen nebenbei auch die Wartbarkeit von Code, da du viele Stellen nicht erneut schreiben muss sondern nur noch aufrufen brauchst. Das wirst du zb. häufig bei SQL Anweisungen vorfinden.
hier mal ein klassisches Beispiel für eine Funktion.
function summe($zahlenArray) { $tmp = 0; for ($i=0; $i<sizeof($zahlenArray); $i++) { $tmp += $zahlenArray[$i]; } return $tmp; }
Was diese Funktion nun macht? Ganz einfach, man übergibt ihr ein Array mit Zahlenwerten und diese werden alle addiert und dann zurückgegeben :)
Hoffe das hat dir geholfen
Evil
Beitrag geaendert: 29.3.2007 16:43:30 von evil-devil -
tct schrieb:
Mit function() kannst du dir eigene Funktionen in PHP schreiben. Das ist z.B. sehr praktisch, wenn man ein und die selbe Sache öfters im Quelltext machen muss (z.B. eine Berechnung), aber nicht mehrmals den gleichen Code schreiben will. Außerdem kann man Funktionen in eine andere Datei ausgliedern und diese dann includen, so dass man nicht den gesamten Quelltext editieren muss, wenn man was an der Funktion ändern will, sondern nur die Datei, in der die Funktion steht.
Mal so als ganz simples (und eigentlich sinnloses) Beispiel:
<? function hello() { return 'Hello World'; } echo hello(); ?>
Das sollte dann mit dem Aufruf von hello() 'Hello World' ausgeben.
In der Praxis sind Funktionen dann natürlich wesentlich umfangreicher und spezieller.
Beitrag geaendert: 29.3.2007 16:40:33 von tct
Für was braucht man die zwei klammern nach hello?
und was bedeutet
???return
Ihr müsst mich entschuldigen, ich kenne mich nicht so gut aus, hab erst vor einem Monat angefangen zu programmieren (PHP). ;)
Danke für eure Hilfe.
--------------------------------------------------------------------------------
evil-devil schrieb:
Eine funktion definiert einen Bereich der meist häufiger als einmal ausgeführt werden sollte. Allerdings fördern Funktionen nebenbei auch die Wartbarkeit von Code, da du viele Stellen nicht erneut schreiben muss sondern nur noch aufrufen brauchst. Das wirst du zb. häufig bei SQL Anweisungen vorfinden.
hier mal ein klassisches Beispiel für eine Funktion.
function summe($zahlenArray) { $tmp = 0; for ($i=0; $i<sizeof($zahlenArray); $i++) { $tmp += $zahlenArray[$i]; } return $tmp; }
Was diese Funktion nun macht? Ganz einfach, man übergibt ihr ein Array mit Zahlenwerten und diese werden alle addiert und dann zurückgegeben :)
Hoffe das hat dir geholfen
Evil
Beitrag geaendert: 29.3.2007 16:43:30 von evil-devil
Ich habe den ganzen code nicht verstanden. Vielleicht konkreter. Und etwas mehr definitionen bitte. ;) -
Hallo,
die Klammern nach dem Funktionsnamen leiten die Funktion quasi ein. Man kann der Funktion auch Parameter übergeben, verdeutlicht siehe Beispiel unten.
return gibt aus. Wenn du also in einer FUnktion kein return hast, wird nicht viel passieren. Was bei return steht, wird also zurückgegeben, siehe Beispiel.
<? //die Funktion wird definiert function square($num){ $sum = $num*$num; return $sum; } //die Funktion wird aufgerufen $zahl = 3; echo square($zahl); //oder so: echo square(3); ?>
Dieses Script bildet die Quadratwurzel von einer Zahl.
In den Klammern übergibt man der Funktion benötigte Parameter. Die Variablen, die man innerhalb der Funktionsdefiniton benutzt, sind NUR innerhalb dieser Definiton auch gültig. Es ist also irrelevant, welche Variablen du der Funktion nachher übergibst.
Die Funktion potenziert also die übergebene Zahl und gibt das Ergebnis zurück (return).
Im darunterliegenden Aufruf siehst du, dass man einerseits Variablen übergeben kann, sowie tatsächliche Strings.
function summe($zahlenArray) {
$tmp = 0;
for ($i=0; $i<sizeof($zahlenArray); $i++) {
$tmp += $zahlenArray[$i];
}
return $tmp;
}
Ich hoffe du weißt, was ein Array ist.
Der Funktion wird ein Array mit Zahlen übergeben.
$tmp wird als 0 definiert, um einen Startwert zu haben (man kann diese Angabe zwar weglassen, soetwas ist aber in größeren Proejekten übersichtlicher).
Dann kommt eine Schleife. $i ist 0 ($i=0). Solange $i kleiner ist, als die Gesamtanzahl der Werte in dem Array ($i<sizeof($zahlenArray)), wird das nachfolgend in geschweiften Klammern Stehende ausgeführt. Danach wird $i um eins erhöht ($i++) und die Abfrage erneut ausgeführt (eben solange, bis $i gleich der Gesamtanzahl der Werte in dem Array ist).
Innerhalb der geschweiften Kammern passiert folgendes:
$i ist 0. Es wird nun der 0te (nullte) Wert (also der erste, das haben Arrays so an sich) aus dem Array gelesen und (da es ja eine Zahl sein soll) zu $tmp addiert ($tmp wurde zuvor als 0 definiert).
Dann wird in der Schleife $i um eins erhöht und nun der Wert mit dem Index 1 aus dem Array gelesen und zu $tmp addiert.
Dies geschieht so lange, bis $i so groß ist, wie die Gesamtanzahl aller Einträge im Array, also solange, bis alle Array-Werte erfasst wurden.
Das erscheint dir jetzt sicher ziemlich verrätselt, aber wenn du das erst einmal einige Male getan hast, hats du das drin, war bei mir auch so... ;)
gruß
ferdinand24
PS. Wenns noch kleinere Probleme gibt, schreib mich ruhig per ICQ an ;)
Beitrag geaendert: 29.3.2007 17:13:08 von ferdinand24
Beitrag geaendert: 29.3.2007 17:15:13 von ferdinand24 -
das Wort function bezeichnet in PHP eine Funktionendefinition. Das hat xasa ja schon so weit beschrieben. eine funktion hat den Vorteil, dass du diese nicht jedesmal im Prozedural abgearbeiteten Quelltext eingeben musst, sondern an jedem Punkt des Scripts aufrufen kannst.
Seine Daseinsberechtigung hat das Schlüsselwort jedoch hauptsächlich auf dem der Objekt Orientierten Programmierung nachgebildeten funktionen Klassen Modell.
So kann Code extrem komprimiert und, über includes auch sicher hinter Zugangskontrollen versteckt werden.
eine Funktion kann sowohl Eingabewerte besitzen:
function testfkt($eingabewert) { // Hier kommt der verarbeitende code echo($eingabewert) }
als auch ohne diese auskommen
function testfkt_2() { // Hier kommt der verarbeitende code echo("Diesmal gibt's keine eingangsvariablen") }
Sie kann aber auch eine Variable zurückgeben:
function testfkt($eingabewert) { // Hier kommt der verarbeitende code echo($eingabewert) $rueckgabewert = $eingabewert+"der wird gleich zurückgegeben"; return $rueckgabewert; }
Was auch noch praktisch sein kann, dass sich eine Funktion rekursiv selbst aufrufen kannn:
function rekursive_funktion($eingabewert) { $returnvalue = rekursive_funktion($eingabewert); return $returnvalue; }
Das ist z.B. beim Rekursiven auslesen von Verzeichnisstrukturen von Vorteil -
Eine andere Methode wie man sinvoll functionen einsetzen kann ist eine eigene functionen klasse die man immer wieder braucht.
1. erstellung einer funktionen Bibliothek(z.B.: functions.php)
Beispiel inhalt der functions.php:
<?php
session_start();
$_SESSION['a_wert'] = 0;
function werteAddieren($wertA, $wertB)
{
$_SESSION['a_wert'] = $wertA + $wertB;
}
?>
und jetzt nun die .php Datei die diese funktion/en aufruft (z.B.: ausgabe.php)
<?php
session_start();
require_once('functions.php');
werteAddieren(15, 25);
echo $_SESSION['a_wert']; //40
?>
Wenn du mit solchen Bibliotheken und functions arbeitest kannst du dir sehr viel zeit sparen z.B.: wenn du DB-Abfragen machen musst, templates laden ... 1 mal geschrieben, X mal verwendet.
Ach, ja, nebenbei auch ein Beispiel wie man Sessions handhabt.
lG.
Beitrag geaendert: 8.4.2007 0:24:51 von rrektor
Beitrag geaendert: 10.4.2007 11:30:36 von rrektor -
1. erstellung einer funktionen klasse (z.B.: functions.php)
Das ist eine Bibiotek, keine Klasse.
Beschäftige dich mal ein bischen mit den OOP ähnlichen Strukturen unter PHP, denn eine Solche Ausdrucksweise stiftet mehr verwirrung als sie hilft. -
lasst doch das OOP mal aussen vor wenn er nicht mal array und function() vollständig versteht.
-
ich verstehe jetzt was eine funktion und was ein array ist...alles i.o
Dieses thema kann geschlossen werden. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage